当前位置: 首页 > 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.lryc.cn/news/456288.html

相关文章:

  • Unity3D游戏的内存控制详解
  • 《数据结构》--栈【概念应用、图文并茂】
  • 国外电商系统开发-运维系统文件下载
  • 【CSS in Depth 2 精译_045】7.1 CSS 响应式设计中的移动端优先设计原则(上)
  • 在线教育新篇章:SpringBoot系统开发策略
  • cmdsh
  • 一键生成PPT的AI工具-Kimi!
  • java.lang.NoClassDefFoundError: kotlin/Result解决方案
  • LSTM的变体
  • LeetCode讲解篇之852. 山脉数组的峰顶索引
  • 矿井人员数据集,用于目标检测,深度学习,采用txt打标签,即yolo格式,也有原文件可以自己转换。总共3500张图片的数据量,划分给训练集2446张,
  • 消息队列RabbitMQ
  • RabbitMQ概述
  • Golang学习路线
  • Flink从ck拉起任务脚本
  • GADBench Revisiting and Benchmarking Supervised Graph Anomaly Detection
  • 某象异形滑块99%准确率方案
  • CDN绕过学习
  • SpringBoot日常:redission的接入使用和源码解析
  • npm包管理深度探索:从基础到进阶全面教程!
  • 最新免费GPT4O和Midjourney
  • python操作OpenAI教程
  • 如何版本REST API:综合指南
  • Docker 环境下 Nginx 监控实战:使用 Prometheus 实现 Nginx 性能监控的完整部署指南
  • 网络安全-IPv4和IPv6的区别
  • 【移动端】事件基础
  • 软件测试比赛-学习
  • 力扣LeetCode-链表中的循环与递归使用
  • AFSim仿真系统 --- 系统简解_08 传感器与特征
  • 已经安装了qt,想添加mingw组件,包含gcc等