简单QT应用到通过手写布局实现QT应用


  1. 新建QT项目

项目结构:

2.打开QT图形编辑界面,通过拖动组件的方式生成如下界面:

3.为确定按钮添加事件。选中按钮à转到槽,截图如下:

点击clicked按钮,添加事件代码如下:

 

4下面是手动编写一个QT案例:

5.新建QT项目

项目结构:

 

编写widget.h头文件

#ifndef WIDGET_H

#define WIDGET_H

 

#include <QWidget>

#include <QPushButton>  //按钮对应的头文件

#include <QVBoxLayout>  //布局,这个中布局让组件上下显示

#include <QHBoxLayout>  //这个布局让组件水平显示

#include <QGridLayout>  //Grid表格布局的头文件

#include <QLineEdit>    //单行文本框对应的头文件

#include <QLabel>      //Label对应的头文件

 

class Widget : public QWidget

{

    Q_OBJECT

 

public:

    Widget(QWidget *parent= 0);

    ~Widget();

private:

    QPushButton *btn1;   //定义一个按钮

    QHBoxLayout *layout1, *layout2;  //两个布局

    QVBoxLayout *layout3;

    QGridLayout *layout4;

    QLineEdit *edit1,*edit2,*edit3;

    QLabel *label1;

    QLabel *label2;

 

private slots:  //这里表示的是事件

    void on_clicked();

};

 

#endif // WIDGET_H

 

6.编写widget.cpp文件

#include "widget.h"
 
Widget::Widget(QWidget *parent)
    : QWidget(parent)
{
    layout1 = new QHBoxLayout;
    layout2 = new QHBoxLayout;
    //layout3 = new QVBoxLayout(this);
    layout4 = new QGridLayout(this);
    btn1 = new QPushButton;
    edit1 = new QLineEdit;
    edit2 = new QLineEdit;
    edit3 = new QLineEdit;
    label1 = new QLabel;
    label2 = new QLabel;//这个控件没有任何父控件
 
    //第一种布局方式
//    layout1->addWidget(btn1);
//    layout1->addWidget(edit1);
//    layout1->addWidget(edit2);
//    layout1->addWidget(edit3);
//    layout2->addWidget(label1);
//    layout3->addLayout(layout1);
//    layout3->addLayout(layout2);
 
    layout4->addWidget(btn1, 0, 0);
    layout4->addWidget(edit1, 0, 1);
    layout4->addWidget(edit2, 0, 2);
    layout4->addWidget(edit3, 1, 0);
    layout4->addWidget(label1, 1, 1);
    btn1->setText("确定");
 
    //当点击了btn1的时候就调用on_clicked()这个函数
    //实现控件与具体的槽函数关联
    connect(btn1, SIGNAL(clicked()), this, SLOT(on_clicked()));
}
 
Widget::~Widget()
{
    //delete layout1;QT内部,不需要单独delete一个控件的指针
    //QT的窗口在退出的时候会自动delete他相关的子控件
    delete label2;
}
 
void Widget::on_clicked()
{
    int a = edit1->text().toInt();
    int b = edit3->text().toInt();
    if (edit2->text() == "+")
        label1->setText(QString::number(a + b));
    if (edit2->text() == "-")
        label1->setText(QString::number(a - b));
    if (edit2->text() == "*")
        label1->setText(QString::number(a * b));
    if (edit2->text() == "/")
    {
        if (b != 0)
            label1->setText(QString::number(a / b));
    }
}
7.main.cpp文件
#include "widget.h"
#include <QApplication>
 
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;
    w.show();
 
    return a.exec();
}
8.窗口的效果:
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
1. 首先在Qt Creator中创建一个新的Qt Widgets应用程序项目。 2. 在项目中添加一个新的Dialog文件。 3. 在Dialog文件中手写UI,包括布局和控件,并设置控件的属性。 4. 在主窗口中添加一个按钮,用于打开弹窗。 5. 在按钮的点击事件中,创建一个Dialog对象,并调用其exec()函数显示弹窗。 示例代码如下: mainwindow.h: ```cpp #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include "mydialog.h" namespace Ui { class MainWindow; } class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = nullptr); ~MainWindow(); private slots: void on_pushButton_clicked(); private: Ui::MainWindow *ui; MyDialog *dialog; }; #endif // MAINWINDOW_H ``` mainwindow.cpp: ```cpp #include "mainwindow.h" #include "ui_mainwindow.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); } MainWindow::~MainWindow() { delete ui; } void MainWindow::on_pushButton_clicked() { dialog = new MyDialog(this); dialog->exec(); } ``` mydialog.h: ```cpp #ifndef MYDIALOG_H #define MYDIALOG_H #include <QDialog> namespace Ui { class MyDialog; } class MyDialog : public QDialog { Q_OBJECT public: explicit MyDialog(QWidget *parent = nullptr); ~MyDialog(); private: Ui::MyDialog *ui; }; #endif // MYDIALOG_H ``` mydialog.cpp: ```cpp #include "mydialog.h" #include "ui_mydialog.h" MyDialog::MyDialog(QWidget *parent) : QDialog(parent), ui(new Ui::MyDialog) { ui->setupUi(this); } MyDialog::~MyDialog() { delete ui; } ``` 在Qt Creator中手写UI时,可以使用拖拽控件的方式来快速创建布局和控件。在创建完控件之后,可以通过属性编辑器来设置控件的属性,如字体、颜色、大小等。最后可以通过布局管理器来设置控件的位置和大小,以及控制它们的布局方式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

涂作权的博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值