Qt教程-Qt Creator中定制GUI程序(添加多界面)

这一节我们将为之前创建的MainWindow工程添加第二个界面实现多窗口的演示。
首先打开之前的MainWindow工程,然后选择新建一个界面类,如下图所示:

之后我们可以选择一个Dialog界面模板,Dialog界面和之前创建的MainWindow有一点区别,默认是不会生成菜单栏,工具栏,状态栏这些的,一般Dialog界面用来做二级窗口。

选择以后我们继续下一步。

选择好类名,继续下一步。

最后完成创建。
之后我们打开aboutdialog.ui就可以对第二个界面进行设计了。

这里我们使用了QLabel控件,QLabel的功能就是显示文字或者图片,使用起来非常的简单。
接着我们回到mainwindow.ui的设计界面,为之前创建的关于菜单添加一个处理函数。

这里我们选择triggered信号,triggered信号和clicked有点像,不同的是clicked只能在被点击时触发,而triggered不仅可以被点击触发还可以被快捷键等方式触发。点击OK后Qt Creator会帮我们创建这么一个槽函数。
如下图所示:

我们写好槽函数之后,直接编译运行然后点击菜单后就可以看到效果。
那么问题来了,我们并没有看到connect函数把槽和信号连接起来,为什么最后却执行成功了呢?
我们可以看到moc处理完成的.h文件中最后调用了QMetaObject::connectSlotsByName函数,这个函数的作用就在于,这个函数通过特定的槽函数名,来自动连接信号和槽,这样我们就不需要再手工调用connect函数来连接了。
函数将自动连接符合on_object名字_信号名()这样名字的槽函数。举个例子,ui里面加一个按钮,按钮的object名字定位为 pushButton, 然后我们定义一个槽,叫 void on_pushButton_clicked();这样这个槽函数将会被自动连接。
最后我们编译运行后可以点击菜单查看效果,效果如下图所示。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

This site uses Akismet to reduce spam. Learn how your comment data is processed.