我是靠谱客的博主 微笑秋天,这篇文章主要介绍Go-Qt5开发之简单拖放(32),现在分享给大家,希望可以做个参考。

Go-Qt5开发之简单拖放

    • 拖拽简介
    • 案例说明
    • demo.go

拖拽简介

在这部分Qt5教程中,我们将讨论拖拽相关操作。

在计算机图形用户界面中,拖放的操作(或支持的作用)点击虚拟对象和拖动到另一个位置或到另一个虚拟对象。一般来说,它可以用于调用多种行动,或创建各种类型的两个抽象对象之间的关联。

拖放是图形用户界面的一部分。拖拽操作让用户直观地做复杂的事情。

通常,我们可以拖放两件事:数据或一些图形对象。
如果我们把一个图像从一个应用程序到另一个地方,我们拖拽二进制数据。
如果我们把一个标签在Firefox中并将其移动到另一个地方,我们拖拽一个图形组件。

案例说明

  • 在之前示例中,我们有一个QLineEdit QPushButton。

  • 我们拖着纯文本的行编辑窗口小部件,然后放到按钮部件。按钮的标签会改变。

  • 这个列子演示了一个简单的拖拽操作

demo.go

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
package main import ( "github.com/therecipe/qt/core" "github.com/therecipe/qt/gui" "github.com/therecipe/qt/widgets" "os" ) /* 在之前示例中,我们有一个QLineEdit QPushButton。 我们拖着纯文本的行编辑窗口小部件,然后放到按钮部件。按钮的标签会改变。 这个列子演示了一个简单的拖拽操作 */ func InitUi() *widgets.QMainWindow { // 创建窗口 app := widgets.NewQMainWindow(nil, 0) // 设置窗口的标题 app.SetWindowTitle("Qt 教程") // 设置窗口的位置和大小 app.SetGeometry2(300, 300, 300, 220) // 设置窗口的图标,引用当前目录下的web.png图片 app.SetWindowIcon(gui.NewQIcon5("images/app.ico")) // 布局窗口组件载体 widget := widgets.NewQWidget(app, core.Qt__Widget) //widget.SetGeometry(core.NewQRect4(300, 300, 300, 220)) widget.SetGeometry2(0, 0, 300, 220) app.SetCentralWidget(widget) //QLineEdit内置了对drag(拖动)操作的支持。 edit := widgets.NewQLineEdit(widget) // 打开拖放 edit.SetDragEnabled(true) edit.Move2(30, 65) // 我们需要重新实现某些方法才能使QPushButton接受拖放操作。 button := widgets.NewQPushButton2("Button", widget) button.Move2(190, 65) // 使该控件接受drop(放下)事件。 button.SetAcceptDrops(true) button.ConnectDragEnterEvent(dragEnterEvent) // 通过重新实现dropEvent()方法,我们定义了在drop事件发生时的行为。 //这里我们改变了按钮的文字。 button.ConnectDropEvent(func(event *gui.QDropEvent) { button.SetText(event.MimeData().Text()) }) return app } // 首先我们重新实现了dragEnterEvent()方法,并设置可接受的数据类型(在这里是普通文本)。 func dragEnterEvent(event *gui.QDragEnterEvent) { if event.MimeData().HasFormat("text/plain"){ event.AcceptProposedAction() } } func main() { // 创建一个应用程序对象 // sys.argv参数是一个列表,从命令行输入参数 widgets.NewQApplication(len(os.Args), os.Args) // 初始化窗口 app := InitUi() // 显示组件 app.Show() // 确保应用程序干净的退出 widgets.QApplication_Exec() }

最后

以上就是微笑秋天最近收集整理的关于Go-Qt5开发之简单拖放(32)的全部内容,更多相关Go-Qt5开发之简单拖放(32)内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部