QMainWindow,QWidget,QDialog,这三基类都可以作为顶层窗口
QWidget:是所有窗口类的父类,功能最简单
QMainWindow:如果窗口需要菜单栏,工具栏,状态栏,就需要QMainWindow
QDialog:对话框窗口,最显著的特点:右上角只有一个关闭按钮
main.cpp
点击领取Qt学习资料+视频教程~「链接」
应用程序类和窗口类是Qt程序必须的两个类
#include "mywidget.h"
// qt中类名和头文件名一样, 而且没有.h
#include
// 应用程序入口
int main(int argc, char *argv[])
{
// 应用程序类, 每一个qt程序中有且只有一个
// 窗口执行起来之后,应用程序类进入一个消息循坏,不断捕捉事件
QApplication a(argc, argv);
// 窗口类, 创建出来之后默认不显示
MyWidget w; // 顶层窗口
// 显示窗口
w.show();
return a.exec(); // a 即应用程序类
}
mywidget.h
#ifndef MYWIDGET_H
#define MYWIDGET_H
#include
#include
class MyWidget : public QWidget
{
Q_OBJECT // 如果使用信号和槽, 必须添加这个宏
public:
MyWidget(QWidget *parent = 0);
~MyWidget();
private:
QPushButton b1;
QPushButton *b2;
};
#endif // MYWIDGET_H
HelloQt.pro文件
#-------------------------------------------------
#
# Project created by QtCreator 2016-03-04T10:09:29
#
#-------------------------------------------------
QT += core gui # qt程序用到哪些模块
# 兼容以前的版本,qt5 以取没有widgets模块,只有gui模块,qt5 从gui中分离出widgets
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
# 生成的应用程序的名字
TARGET = 123
# 指定生成的makefile的类型 lib
TEMPLATE = app
# 源文件 换行
SOURCES += main.cpp
mywidget.cpp
mybutton.cpp
# 头文件
HEADERS +=
mybutton.h
mywidget.h
CONFIG += c++11
mywidget.cpp
#include "mywidget.h"
#include "mybutton.h" // 自定义类头文件
MyWidget::MyWidget(QWidget *parent)
: QWidget(parent)
{
/*
* 如果窗口需要依附另外一个窗口, 需要给该窗口指定父类
* 父窗口显示的时候,子窗口也会随之显示
*/
// 初始化
b2 = new QPushButton("hello, qt", this);
// b2->setText("hello, qt");
// b2->show();
b1.setParent(this);
b1.setText("我是老二");
// 改变位置 -- 移动
// 窗口坐标系 原点:左上角 x:向右递增, y 向下递增
b1.move(100, 100);
b1.resize(50, 50);
// 内存自动回收
// 1. 从QObject派生的类 1.直接 2.间接
// 2. 指定父类, 父亲析构的时候,先析构他的孩子
// 创建自定义按钮对象
MyButton* btn = new MyButton(this);
btn->setText("wo shi mybutton");
// 设置窗口标题
this->setWindowTitle("明天就要离开中腾....");
// this->resize(200, 300);
this->setFixedSize(200, 300);
this->setWindowIcon(QIcon("D:Luffy.png"));
// 需求 b1 关闭窗口
// connect(b1, 发出的信号, this, 处理信号的槽函数);
connect(&b1, &QPushButton::clicked, this, &MyWidget::close);
/*
* b1: 信号的发出者, 此参数是一个指针
* &QPushButton::clicked: 信号发出者, 内部的一个信号
* 格式: & + 信号发出者类的名字 + :: + 信号的名字
* this: 信号的接收者, 此参数是一个指针
* &MyWidget::close: 信号的处理函数, 属于this
*/
}
MyWidget::~MyWidget()
{
}
页面更新:2024-03-13
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号