QT不使用设计师界面( 新建例程中不要勾选“Generate form”,默认继承 QMainWindow 类即可) 采用代码的方式来写QT,便于理解。
下面简单写一个按钮控件,实现信号与槽的连接,点击按钮改变窗口的颜色。
mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
//引入QPushButton类
#include <QPushButton>
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
private:
QPushButton *pushbutton1; //声明一个对象button1
QPushButton *pushbutton2; //声明一个对象button2
private slots:
void pushButton1_clicked(); //声明button1的槽函数
void pushButton2_clicked(); //声明button2的槽函数
};
#endif // MAINWINDOW_H
mainwindow.c文件
#include "mainwindow.h"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
this->setGeometry(0,0,800,480); //0,0表示原点(窗口的起始X和Y坐标) 宽为800 高为480
//实例化对象
this->pushbutton1 = new QPushButton("窗口皮肤1",this); //QPushButton的构造函数
this->pushbutton2 = new QPushButton("窗口皮肤2",this); //QPushButton的构造函数
//设置button的位置
pushbutton1->setGeometry(300,200,80,40); //前面数字表示按钮所在的X和Y坐标,后面的表示按钮的宽和高
pushbutton2->setGeometry(400,200,80,40);
//信号与槽连接
connect(pushbutton1,SIGNAL(clicked()),this,SLOT(pushButton1_clicked()));
connect(pushbutton2,SIGNAL(clicked()),this,SLOT(pushButton2_clicked()));
}
//槽函数的实现
void MainWindow:: pushButton1_clicked()
{
this->setStyleSheet("QMainWindow { background-color: rgba(255,245,238,100%);}");
}
void MainWindow:: pushButton2_clicked()
{
this->setStyleSheet("QMainWindow { background-color: rgba(238,122,233,100%);}");
}
MainWindow::~MainWindow()
{
}
其余的不用改,便可以点击按钮更换窗口背景颜色
``