• 6338阅读
  • 12回复

Qt的QMainWindow中调用QDialog的问题??? [复制链接]

上一主题 下一主题
离线liuligang88
 

只看楼主 倒序阅读 楼主  发表于: 2016-01-05
我想点击QMainWindow的菜单about,弹出一个对话框QDialog,我不知道该如何实现???
我知道QDialog中调用QMainWindow有个accept();可以实现,但QMainWindow里没有accept();功能,
我该如何实现?求解答,谢谢!!!
离线zy5316176

只看该作者 1楼 发表于: 2016-01-05
可以直接在菜单栏里加入动作,然后动作的triiggered信号链接槽函数就好。
离线liuligang88

只看该作者 2楼 发表于: 2016-01-05

QMainWindow中能直接显示QDialog对话框吗???你槽函数怎么写?
离线zy5316176

只看该作者 3楼 发表于: 2016-01-05
可以啊,若对话框不需要和主界面通信就在槽函数中直接定义对话框,然后末尾dialog->show()或dialog->exec();
若需要通信在槽函数里再写几个信号槽机制就行。
离线liuligang88

只看该作者 4楼 发表于: 2016-01-05
不可以啊,这是两个类,QMainWindow里找不到Dialog啊,我建了两个ui的
离线liuligang88

只看该作者 5楼 发表于: 2016-01-05
你的意思是用语句新建一个Dialog,是吗?不能用ui界面对吗?
离线liuligang88

只看该作者 6楼 发表于: 2016-01-05
用语句新建一个QDialog可以实现,但是两个ui界面时,怎么调用?
离线zy5316176

只看该作者 7楼 发表于: 2016-01-05
回 liuligang88 的帖子
liuligang88:不可以啊,这是两个类,QMainWindow里找不到Dialog啊,我建了两个ui的 (2016-01-05 15:35) 

QObject::connect(action_about,SIGNAL(triggerred()),this,SLOT(slot_about()));


void slot_about()
{
QDialog *dialog_about=new QDialog (this);
...
...
...
dialog_about->show();
}


这样应该可以啊,UI文件也有代码,在代码里相应的地方改一下。

我不大懂你的意思,这是两个类,但是对话框可以看成是主窗口的子控件。
离线liuligang88

只看该作者 8楼 发表于: 2016-01-05
恩,非常感谢,这样是可以实现的。
但是如果是两个ui的界面,不是用语句新建的,一个QMainWindow,一个QDialog,能不能实现呢???
离线uidab

只看该作者 9楼 发表于: 2016-01-05
回 liuligang88 的帖子
liuligang88:恩,非常感谢,这样是可以实现的。
但是如果是两个ui的界面,不是用语句新建的,一个QMainWindow,一个QDialog,能不能实现呢??? (2016-01-05 16:08) 

你想得有点复杂,就是两个类来回调用的问题。和UI是怎么建的没什么关系!
有时候为了工作直接获得答案,而我却失去了思考的乐趣!


飘啊飘,何时能安居!
离线zy5316176

只看该作者 10楼 发表于: 2016-01-05
ui 也可以,建立好两个ui文件以后。然后在代码中改,一个UI文件其实就是一个类,你直接在代码中加入这些函数就好了。不知你能不能明白我的意思。
离线liuligang88

只看该作者 11楼 发表于: 2016-01-05
恩,非常感谢@zy5316176   的耐心解答,问题已经解决。
原来我在MainWindow.cpp中忘记添加Dialog的头文件,
所以找不到Dialog,无法调用。
本帖提到的人: @zy5316176
离线z609932088

只看该作者 12楼 发表于: 2016-01-07
有阳光的地方就是青春
快速回复
限100 字节
 
上一个 下一个