Qt学习之两个ui界面跳转(Qt Creator以及VS的Qt插件中两种方式)

1、Qt Creator中进行界面跳转

参照:https://blog.csdn.net/qq_40785363/article/details/79527343
比较容易,但注意以下几点:
(1)除了在新建项目时,会有一个ui界面,再添加第二个ui界面时,要注意选择Dialog界面模版
原因是:为了保证按第一个ui界面的button按钮时,会跳转到第二个ui界面,为了保证第二个ui界面不是一闪而过,需要如下语句

 Dialog2 d;
        d.exec();

如果不是Dialog类型的模版, 而是选择了Widget模版,d.exec();这句话就会报错。因为:exec()函数是Dialog的函数。
(2)正如上篇博客所说:一定要在第一个窗体的头文件里(dialog.h)声明
(3)然后在第一个界面的ui文件里创建一个pushbutton并且转到槽,点击pushbutton按钮,右键转到槽,就可以在槽中写按一下这个按钮需要出现什么功能的代码了
转到槽后有什么变化:
a、会在主窗口的.h文件中出现:

private slots:
    void on_pushButton_clicked();

b、会在主窗口的.cpp文件中出现:

void Dialog::on_pushButton_clicked()
{
....................//可以写按按钮时  需要实现的功能
}

2、VS的Qt插件中实现ui界面跳转

总的来说就是和上面类似,只是VS没有转到槽这个功能(好像有,但是我不会用),所以需要自己手写一下,按住按钮需要实现什么功能
参考:https://zhidao.baidu.com/question/812102274194870372.html

1、新建一个Qt的GUI Application的项目,然后我选择的还是QWidget作为基类
在这里插入图片描述
2、选中项目名字——添加——Add Qt Class——QtGuiClass——基类选择QDialog(原因和在Qt中一样,见上面注意(1))
在这里插入图片描述
3、在第一个ui界面,即MyWidget的ui界面上添加一个按钮pushButton,为了区分,在第二个界面,即Dialog1的ui界面我添加了一个日历
4、在主窗口的.h文件中添加,即MyWidget,h中添加:
(1)添加窗口二的头文件,即:#include "Dialog1.h"
(2)添加定义一个槽函数:

private slots:
void slotclicked();

MyWidget.h中的代码:

#include <QtWidgets/QWidget>
#include "ui_MyWidget.h"
//添加头文件
#include "Dialog1.h"


class MyWidget : public QWidget
{
	Q_OBJECT

public:
	MyWidget(QWidget *parent = Q_NULLPTR);

private:
	Ui::MyWidgetClass ui;

	//声明槽函数
private slots:
	void slotclicked();
};


5、来到MyWidget.cpp文件下,来定义槽函数,并将按钮和槽函数建立起联系
(1)信号和槽函数建立联系:构造函数中添加connect函数,连接信号与槽

connect(ui.pushButton, SIGNAL(clicked()), this, SLOT(slotclicked()));

(2)定义槽函数:

//定义槽函数
void MyWidget::slotclicked()
{
	.............//要实现的功能的代码
}

MyWidget.cpp中的代码:

#include "MyWidget.h"

MyWidget::MyWidget(QWidget *parent)
	: QWidget(parent)
{
	ui.setupUi(this);

	//连接信号和槽
	connect(ui.pushButton, SIGNAL(clicked()), this, SLOT(slotclicked()));//注意ui.pushButton,因为butoon是我们自己拖过来的,所以要写那个按钮的名字,才可以识别
}

//定义槽函数
void MyWidget::slotclicked()
{
	Dialog1 d;
	d.exec();
}

运行结果:
在这里插入图片描述
哈哈哈哈哈好像写的有点白痴,问题是,我真的不会呀,,,

猜你喜欢

转载自blog.csdn.net/weixin_43384257/article/details/88757978
今日推荐