首页 > 学院 > 开发设计 > 正文

QT界面数据传递

2019-11-11 06:29:30
字体:
来源:转载
供稿:网友
自己总结的暂时有两种:一、非模态:可以说是两个平行的界面,不是父子关系。两个窗口也可以随意切换。这时候的数据传递可以通过信号和槽的关系。在send界面定义SIGNAL,然后emit, void sendDataX(QString)在receieve界面定义SLOT函数即可。二、模态:模态对话框是一个在结束这个对话框之前,不能进行其他任务。

项目实例:需要打开一个对话框,在对话框里面有一张TableWidget。我们需要获取它的当前行的text值,保存出来。先开始使用的是非模态对话框,在选定之前可以做其他的任务,这是不符合要求的。因此之后使用模态对话框。addPRogramDialog addprogram;addprogram.exec();模态对话框的返回值有两个。一个是QDialog::Accepted,另一个是QDialog::Reject;因为之前使用的都是非模态的,第一次使用模态,所以在如何读出他的数据花了一些时间,非模态可以通过信号和槽。模态则是通过成员变量。

实例:一、首先是一个对话框,我们定义为Dialog类型。二、在头文件中,我们可以把我们需要的东西保存为public成员变量。比如这里我需要它当前行数,当前行的内容,可以如此定义。

三、初始化控件的任务我们可以通过UI,或者代码,代码主要放在ui->setupUi(this)下面。初始化代码:

四、然后我们定义一个showEvent事件。(我是用的TableWidget)在showEvent事件里我需要的是从某个地方读取文件名,保存到TableWidget中。首先有一个结构体

在定义一个List,保存到List中

最后将文件插入TableWidget中我们点击TableWidget某一行的时候,我们获取当前行和名字。

这样就完成了数据传递


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表