Qt图形界面编程入门(创建一个简单的程序)

1,手工编码方式

利用手工编码方式建立“Hello Qt!”程序

第一步:

 

得到界面

2,无UI的向导方式

 

从图中,我们发现向导为窗口程序提供了3个基类,分别外QMainWindow、QWidget、QDialog,3个基类的区别如下:

QMainWindow类:提供一个有菜单栏、工具栏和一个状态栏的应用窗口模式

QWidget类:是所有用户界面对象的基类。它从窗口系统接收鼠标、键盘和其他事件,并且在屏幕上绘制增加。

QDialog类:是对话窗口的基类。对话框窗口的主要用于短期任务以及和用户进行简要通信的顶级窗口

工程建立完毕后,有4个文件。其中头文件dialog.h和源文件dialog.cpp共同实现了仅属于本项目的对话框类Dialog。类Dialog派生自Qt的基本对话框类QDialog。

3,Qt设计器方式

借助Qt设计器(Qt Designer)可以以所见即所得的方式构件GUI程序。

 

(1)设计区:就是正中间的部分,主要用来布置各个窗口部件。

(2)部件列表窗:这里分类罗列了各种常用的标准部件,可以使用鼠标将这些部件
拖人主设计区中,放到主设计区的界面上。

(3)对象查看器:这里列出了界面上所有部件的对象名称和父类,而且以树形结构
显示了各个部件的所属关系。可以在这里单击对象来选中某个部件。

(4)属性编辑器:这里显示了各个部件的常用属性信息,可以在这里更改部件的-
些属性,如大小、位置等。这些属性按照从祖先继承的属性、从父类继承的属性和自己的
属性的顺序进行了分类。

(5) Action(动作)编辑器、信号和槽编辑器:这些和菜单命令、控件事件响应等相关,
放到以后使用时再介绍。

(6)常用功能工具栏:该工具栏中前4个按钮用于进人相应的模式,分别是窗口部件编辑模式(这是默认模式)、信号/槽编辑模式、伙伴编辑模式和Tab顺序编辑模式。后面几个按钮用来实现添加布局管理器以及调整控件大小等功能。

第2步,在对话框中添加控件。

从部件列表窗中拖曳一个Label(标签)到主窗体中,可以在标签属性编辑器中修改字体、对齐方式等属性

 

 

生成编译结构的文件,根据自己的路径来寻找ui_dialog

/********************************************************************************
** Form generated from reading UI file 'dialog.ui'
**
** Created by: Qt User Interface Compiler version 5.3.1
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/#ifndef UI_DIALOG_H
#define UI_DIALOG_H#include <QtCore/QVariant>
#include <QtWidgets/QAction>
#include <QtWidgets/QApplication>
#include <QtWidgets/QButtonGroup>
#include <QtWidgets/QDialog>
#include <QtWidgets/QHeaderView>
#include <QtWidgets/QLabel>QT_BEGIN_NAMESPACEclass Ui_Dialog
{
public:QLabel *label;void setupUi(QDialog *Dialog){if (Dialog->objectName().isEmpty())Dialog->setObjectName(QStringLiteral("Dialog"));Dialog->resize(400, 300);label = new QLabel(Dialog);label->setObjectName(QStringLiteral("label"));label->setGeometry(QRect(170, 140, 111, 51));retranslateUi(Dialog);QMetaObject::connectSlotsByName(Dialog);} // setupUivoid retranslateUi(QDialog *Dialog){Dialog->setWindowTitle(QApplication::translate("Dialog", "Dialog", 0));Dialog->setProperty("label", QVariant(QString()));
#ifndef QT_NO_ACCESSIBILITYlabel->setAccessibleName(QString());
#endif // QT_NO_ACCESSIBILITY
#ifndef QT_NO_ACCESSIBILITYlabel->setAccessibleDescription(QString());
#endif // QT_NO_ACCESSIBILITYlabel->setText(QApplication::translate("Dialog", "Hello Qt!", 0));} // retranslateUi};namespace Ui {class Dialog: public Ui_Dialog {};
} // namespace UiQT_END_NAMESPACE#endif // UI_DIALOG_H

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/534327.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux基础(Vim编辑器与Shell命令脚本)

1、Vim文本编辑器 Vim文本编辑器有三种模式 命令模型&#xff1a;控制光标移动&#xff0c;可对文本进行复制、粘贴、删除和查找得等工作。 输入模式&#xff1a;正常的文本录入 末行模式&#xff1a;保存或退出文档&#xff0c;以及设置编辑环境。 在每次运行Vim编辑器时&…

Python二级笔记(17)

操作题&#xff1a; 1&#xff0c;接收用户输入的一个浮点数&#xff0c;输出这个浮点数的小数部分各字符的和&#xff0c;以10为宽度,靠右显示&#xff0c;,采用星号*填充。 代码&#xff1a; s input("请输入一个小数&#xff1a;") s s[::1] cs () for c in…

Python二级笔记(18,19合集操作篇)

操作题&#xff1a; 1&#xff0c;键盘输入正整数n,按要求把n输出到屏幕&#xff0c;格式要求&#xff1a;宽度为25个字符&#xff0c;等号字符&#xff08;&#xff09;填充&#xff0c;右对齐&#xff0c;带千位分隔符。如果输入正整数超过25位&#xff0c;则按照真实长度输…

Qt图形界面编程入门(信号和槽通信机制)

信号和槽机制是Qt的核心机制&#xff0c;可以让编程人员将互不相关的对象绑定在一起&#xff0c;实现对象之间的通信。 声明了信号的对象&#xff0c;当其状态改变时&#xff0c;信号就由该对象发送出去&#xff0c;而且该对象只负责发送信号&#xff0c;它不知道另一端是谁在…

Python二级笔记(18,19合集知识点篇)

知识点&#xff1a; 1&#xff0c;软件测试的目的是发现程序中的错误。调试是作为成功测试的后过而出现的步骤&#xff0c;也就是&#xff0c;调试是在测试发现错误之后排除错误的过程。软件调试的任务是诊断和改成程序中的错误。 2&#xff0c;深度等于控制的层数 3&#x…

Linux基础(用户身份和文件权限)

用户身份与能力 Linux是一个多用户、多任务的操作系统&#xff0c;具有很好的稳定性与安全性&#xff0c;在幕后保障Linux系统安全则是一系列复杂的配置工作。 Linux系统的管理员之所以是root&#xff0c;并不是因为它的名字叫root&#xff0c;而是因为该用户的身份号码即UID…

TensorFlow实验(1)

实验1-2 搭建深度学习开发环境 1&#xff09;安装Anaconda 2&#xff09;创建虚拟环境&#xff1a; 3&#xff09;激活环境 4&#xff09;安装tensorflow 5)安装jupyter notebook 安装完成之后&#xff0c;运行第一个程序“Hello,World” 要求&#xff1a;详细安装步骤&…

TensorFlow实验(2)

实验3-4 数据结构-张量 1&#xff09;已知两个张量[1,3,5,7]和[2,4,4,8],编写一个模型&#xff0c;计算两个张量的加法&#xff0c;输出结果&#xff0c;并在tensorboard中显示 2&#xff09;已知张量[1,2,3,4,5,6,7,8,9,10,11,12]有12个元素&#xff0c;利用tf.reshape()将其…

Linux基础(文件权限续篇)

文件的特殊权限 在复杂多变的生产环境中&#xff0c;单纯设置文件的rwx权限无法满足我们对安全和灵活性的需求&#xff0c;因此便有了SUID,SGID,SBIT的特殊权限位。这是一种对文件权限进行设置的特殊功能&#xff0c;可以与一般权限同时使用&#xff0c;以弥补一般权限不能实现…

Linux基础(存储结构和磁盘划分)

一切从“/”开始 在Linux系统中&#xff0c;目录、字符设备、块设备、套接字、打印机等都被抽象成了文件&#xff0c;一切皆为件 与windows操作系统不同&#xff0c;Linux系统内不存在C/D/E/F盘等&#xff0c;一切文件都是从根&#xff08;/&#xff09;目录开始的 Linux系统…

软件工程(需求分析)

需求分析 为了开发出真正满足用户需求的软件产品&#xff0c;首先必须知道用户的需求。对软件需求的深人理解是软件开发工作获得成功的前提条件&#xff0c;不论人们把设计和编码工作做得如何出色,不能真正满足用户需求的程序只会令用户失望.给开发者带来烦恼。 需求分析是软…

TensorFlow构建二维数据拟合模型(1)

知识图谱 TensorFlow运行机制 TensorFlow是基于计算图的深度学习编程模型 Tensor表示张量&#xff0c;其实质上是某种类型的多维数组 Flow表示基于数据流图的计算&#xff0c;实质上是张量在不同节点间的转化过程。 在TensorFlow中&#xff0c;计算图中的节点称为OP&…

Qt图形界面编程入门(标签与槽机制习题分享)

标签对象初始显示0&#xff0c;每次单击标签对象后&#xff0c;其显示内容就加1&#xff0c;依次变为1、2、3等。 #ifndef DIALOG_H #define DIALOG_H#include <QDialog> #include <QPushButton> //包含命令按钮类 #include "MyLabel.h"class Dialo…

js中执行到一个if就停止的代码_Node 中如何引入一个模块及其细节

在 node 环境中&#xff0c;有两个内置的全局变量无需引入即可直接使用&#xff0c;并且无处不见&#xff0c;它们构成了 nodejs 的模块体系: module 与 require。以下是一个简单的示例const fs require(fs)const add (x, y) > x ymodule.exports add虽然它们在平常使用…

二级MS Office公共基础知识错题本(1)

1&#xff0c;顺序程序具有顺序性、封闭性和可再现性的特点&#xff0c;不具备并发性 2&#xff0c;为了降低算法的空间复杂度&#xff0c;主要应减少输入数据所占的存储空间以及额外空间&#xff0c;通常采用压编存储技术。 3&#xff0c;树的总的结点数为树中所有结点的度数…

c++ file* 句柄泄漏_C++核心指南:P.8 勿泄漏任务资源

P.8: 勿泄漏任务资源原因随着时间的推移&#xff0c;即使是资源的缓慢增长也会耗尽这些资源的可用性&#xff0c;这对于长时间运行的程序特别重要&#xff0c;但也是负责任的编程行为的基本部分。糟糕的例子void f(char* name){ FILE* input fopen(name, "r"); // .…

数据规范化、实体-联系图、状态转换图、层次方框图、Warnier图、IPO图及验证软件需求

数据规范化 软件系统经常使用各种长期保存的信息&#xff0c;这些信息通常以一定方式组织并存储在数据库或文件中&#xff0c;为减少数据冗余&#xff0c;避免出现插入异常或删除异常&#xff0c;简化修改数据的过程,通常需要把数据结构规范化。 通常用“范式(normal forms)”…

Linux基础(iptables与firewalld防火墙)

iptables 在早期的Linux系统中&#xff0c;默认使用的是iptables防火墙管理服务来配置防火墙。尽管新型的fierwalld防火墙管理服务已经被投入使用多年&#xff0c;但是大量的企业在生产环境中依然出于各种原因而继续使用iptables。 策略与规则链 防火墙会从上至下的顺序来读…

虚拟跳线软件干什么用的_疯狂刷单!用违法软件生成虚拟手机号,“骑手”半年“刷单”牟利60余万,百米内竟有万笔订单 | 申晨间...

来源&#xff1a;新闻晨报 记者&#xff1a;吴艺璇借助违法软件生成虚拟手机号码&#xff0c;利用平台审核漏洞大量注册用户&#xff0c;大量“刷单”骗取平台的返现和购物补贴&#xff0c;半年内疯狂刷1.8万余单&#xff0c;累计牟利60余万元。近日&#xff0c;在市公安局刑侦…

ygo游戏王卡组_ACG大科普(7)游戏王

大家是否在小时候接触过一种卡片类似这种的 这就是今天的主角游戏王。 背景 1996年&#xff0c;《游戏王》漫画开始在集英社《周刊少年Jump》连载。 1998年&#xff0c;Bandai推出以《游戏王》原作中登场的集换卡牌游戏“M&W”为题材的集换卡牌。 采用Bandai的卡片自动贩卖…