题目要求:创建qt界面,上有一按钮,内有文字click me,点击后出现弹窗且按钮内文字变为clicked。
注意所有路径不能出现中文
出现弹窗步骤
-
左上方文件—>新建文件或项目
-
在文件和类里找到Qt—>Qt设计师界面类—>Dialog without Button(根据自己的需求选择,旁边有样式参考)
-
设置窗口的类名(这里我用默认的类名dialog)
-
将左侧pushButton拖到面板上(可以自定义按钮名称),右键—>转到槽
-
弹窗设置完毕,接下来代码环节
现在的目录:
main.cpp,dialog.h和dialog.cpp没有什么改动,主要的改动在mainwindow.h和mainwindow.cpp
整体代码如下:
mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QPushButton>//必须引入
#include <QMainWindow>
#include "dialog.h" //必须引入
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
private:
QPushButton btn;//定义一个按钮
Ui::MainWindow *ui;
Dialog *dialog;//定义一个弹窗的指针
public:
void changeText();//定义一个函数来写按钮改变文字和弹窗操作
};
#endif // MAINWINDOW_H
mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
this->setWindowTitle("按钮弹窗演示-QT");//设置主窗口的名字
setFixedSize(600,400);//固定窗口的大小(自行设置也可以不设置,也可以只设置大小但不固定)
btn.setText("click me"); //设置按钮内名字
btn.setParent(this);//显示按钮
btn.resize(200,200);//设置按钮大小
btn.move(200,100);//设置按钮位置
connect(&btn, QPushButton::clicked, this, MainWindow::changeText);//绑定按钮点击事件
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::changeText()
{
btn.setText("clicked");
dialog = new Dialog(this);
dialog->setModal(false);
dialog->show();
//作用:点击后,改变按钮内文字并出现弹窗。
}
接下来运行就完成了(三个快捷键:ctrl+b编译,ctrl+r运行,ctrl+f查找)