当前位置: 首页 > news >正文

【Qt】Qt学习笔记(一):Qt界面初识

Qt 是一个跨平台应用程序和 UI 开发框架。使用 Qt 您只需一次性开发应用程序,无须重新编写源代码,便可跨不同桌面和嵌入式操作系统部署这些应用程序。Qt Creator是跨平台的Qt集成开发环境。

 创建项目

 Qt的一些界面,初学时一般选择Qt Widgets Application,将会创建一个窗口类应用程序

非Qt项目,Plain C Application和Plain C++ Application是纯C/C++项目。

创建项目的时候 QWidget,QMainWindow,QDialog,QWidget是所有能看到的窗口或者控件的父类,QMainWindow和QDialog都继承自它。

在这里可以自己更改Class name,然后头文件和源文件系统会自动帮我们修改成和Classname相同的前缀名。

代码编辑区

widget.h

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>class Widget : public QWidget//Widget继承自QWidget
{Q_OBJECT//宏,引入qt信号和槽的一个宏public://parent窗口指针,父窗口对象的指针//parent为0/NULL,表示当前窗口对象是顶层窗口//顶层窗口就是在任务栏可以找到的窗口Widget(QWidget *parent = nullptr);~Widget();
};
#endif // WIDGET_H

main.cpp

#include "widget.h"#include <QApplication>
#include<iostream>int main(int argc, char *argv[])
{//创建一个应用程序对象QApplication a(argc, argv);//窗口类的一个对象Widget w;//把窗口显示出来w.show();// return a.exec();std::cout<<"before exec"<<std::endl;a.exec();//当不关闭窗口时,程序就在这里/** 死循环让程序一直运行,生命循环,消息循环* while(1)* {*  if(点击x按钮)*      break;*  if(点击最小化按钮)*      最小化动作;* }*/std::cout<<"after exec"<<std::endl;return 0;
}/** main函数中,QApplication就是Qt里边每个应用程序有且仅有一个的应用程序对象***/

widget.cpp

#include "widget.h"Widget::Widget(QWidget *parent): QWidget(parent)
{}Widget::~Widget() {}/**创建项目的时候 QWidget,QMainWindow,QDialog*QWidget是所有能看到的窗口或者控件的父类,QMainWindow和QDialog都继承自它***/

还有,如果我们的构建系统配置文件,如果选择的构建工具是qmake,qmake适用于Qt项目的构建,那么在代码编辑区中还会生成一份后缀名为.pro的文件

QT       += core guigreaterThan(QT_MAJOR_VERSION, 4): QT += widgetsCONFIG += c++17# You can make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0SOURCES += \main.cpp \hellowidget.cppHEADERS += \hellowidget.h# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target
# 指定项目使用的Qt模块,这里指定了core和gui模块。
QT       += core gui# 如果Qt的主要版本号大于4,则添加widgets模块。
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets# 设置编译器标准为C++17。
CONFIG += c++17# 下面的行可以让你的代码在使用已弃用API时编译失败。
# 若要启用此功能,取消注释下面的行。
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # 禁用所有在Qt 6.0.0之前弃用的API# 指定源文件列表。
SOURCES += \main.cpp \hellowidget.cpp# 指定头文件列表。
HEADERS += \hellowidget.h# 默认的部署规则。
# 对于QNX平台,指定目标路径为/tmp/${TARGET}/bin。
qnx: target.path = /tmp/$${TARGET}/bin
# 对于其他Unix系统(不包括Android),指定目标路径为/opt/${TARGET}/bin。
else: unix:!android: target.path = /opt/$${TARGET}/bin
# 如果target.path不是空值,则安装目标到指定路径。
!isEmpty(target.path): INSTALLS += target

 运行后产生这样的窗口,一个白色的窗口界面,我们需要通过设计进行让界面变得更加丰富。

 进入设计模式:双击.ui文件即可进入设计模式

 

相关快捷键

Ctrl+R:编译并运行

Ctrl+B:执行编译操作

Ctrl+Tab:在不同文件之间进行切换

Ctrl+S:保存

Ctrl+/:快速注释

Ctrl+A:全选

Ctrl+C:复制

Ctrl+V:粘贴

Ctrl+X:剪切

Ctrl+鼠标上下滑动:页面放大/缩小


http://www.mrgr.cn/news/43586.html

相关文章:

  • 【代码随想录Day31】贪心算法Part05
  • 【ShuQiHere】双系统指南:如何在 Linux 系统情况下安装 Windows 11,处理引导与网络问题 ️
  • yub‘s Algorithm Adventure Day6
  • Unity Shader Graph基础包200+节点及术语解释
  • 【每天学个新注解】Day 16 Lombok注解简解(十五)—@FieldNameConstants
  • Spring源码-AOP
  • Python中的自然语言处理:从基础到高级
  • A - Takahashi san 2 题解
  • 第二百六十九节 JPA教程 - JPA查询OrderBy两个属性示例
  • InnoDB 事务模型
  • 一刷代码随想录总结:
  • 如何向文科生解释什么是计算机的缓存
  • centos7安装配置nginx
  • 双指针:滑动窗口
  • [单master节点k8s部署]29.Istio流量管理(五)
  • golang gorm
  • 八大排序--01冒泡排序
  • 基于keras的停车场车位识别
  • GoogleNet原理与实战
  • 内存缓存和硬盘缓存