Qt修炼手册2_动态设计
1.去掉UI功能,直接进行设计
头文件:DynamicDialog.h#ifndef DYNAMICDIALOG_H #define DYNAMICDIALOG_H#include <QtWidgets/QDialog> #include <qlabel.h> #include <qlineedit.h> #include <qpushbutton.h>class DynamicDialog : public QDialog {Q_OBJECTpublic:DynamicDialog(QWidget *parent = 0);~DynamicDialog(); private:QLabel *label1, *label2;QLineEdit *lineEdit;QPushButton *button; private slots:void showArea(); };#endif // DYNAMICDIALOG_H
源文件:DynamicDialog.cpp
<span style="font-size:18px;">#include "dynamicdialog.h" #include <qgridlayout.h> const static double PI = 3.14159; DynamicDialog::DynamicDialog(QWidget *parent): QDialog(parent) {label1=new QLabel(this);label1->setText(tr("please input radius:"));lineEdit=new QLineEdit(this);label2=new QLabel(this);button=new QPushButton(this);button->setText(tr("Calculate Area"));QGridLayout *mainLayout=new QGridLayout(this);mainLayout->addWidget(label1,0,0);mainLayout->addWidget(lineEdit,0,1);mainLayout->addWidget(label2,1,0);mainLayout->addWidget(button,1,1);//connect(button,SIGNAL(clicked()),this,SLOT(showArea()));connect(lineEdit,SIGNAL(textChanged(QString)),this,SLOT(showArea()));}DynamicDialog::~DynamicDialog() {} void DynamicDialog::showArea() {bool ok;QString tempStr;QString valueStr = lineEdit->text();int valueInt = valueStr.toInt(&ok);double area = valueInt*valueInt*PI;label2->setText(tempStr.setNum(area)); }</span>
2.运行结果
3.体会
如果之前一点都没有接触过UI设计,可以试试动态创建方法,否则,比较反感,开发周期长,很多动态创建完全没有必要。
Qt修炼手册2_动态设计相关推荐
- Qt修炼手册1_溢美之词和Designer设计
1.QT是啥? Qt是一个跨平台的C++图形用户界面应用程序框架.它为应用程序开发者提供建立艺术级图形用户界面所需的所有功能.Qt是诺基亚公司的一个产品. 1996年, Qt进入商业领域,已成为全世界 ...
- Qt修炼手册10_QTableWidget控件使用说明及实践
1.QTableWidget类简介 QTableWidget是QT对话框设计中常用的显示数据表格的控件. QTableWidget继承于类QTableView,所以在学习QTableWidget之前可 ...
- Qt修炼手册9_Ui名字空间及setupUi()原理解读
1.前言 用最新的QtCreator选择GUI的应用会产生含有如下文件的工程: 1.1 *.pro文件 QT += core gui //使用Qt的Core和Gui模块.QT将自己的库函数分为多个模块 ...
- Qt修炼手册6_图形:图形视图框架
1.前言 主要为了学习可以在GUI上有效显示或管理大量图形对象的API,以及进行显示.扩大.缩小等操作. 2.图形视图框架(Graphics View Framework) 图形视图框架使用BSP树算 ...
- Qt修炼手册12_线程同步与线程等待条件
1.同步线程:何为同步? 参考百度百科: 1.1 线程 线程是进程中的一个实体,是被系统独立调度和分配的基本单位.一个进程可以有多个线程,一个线程必须有一个父进程,线程自己不拥有系统资源,只有运行必须 ...
- Qt修炼手册11_多线程编程和QThread类
1.事件循环 学习QT多线程编程之前,有必要先熟悉事件循环的概念. 先看一个单线程界面程序的主函数代码: int main(int argc, char* argv[]) {QApplication ...
- Qt修炼手册8_常用的容器类QVector和QList
1.前言 Qt提供了非常有用的容器类的迭代器类,用于修改.删除.插入和保存数据.本着学习的角度,重点研究了QVector和QList两个类. QT中,具有STL风格的迭代器具有两种数据类型,分别是只读 ...
- Qt修炼手册7_图形:用户自定义QGraphicsItem
1.前言 Qt中提供的Item未必能够满足需要,因此有必要实现自定义的QGraphicsItem对象.与QPushButton一样,如果发生鼠标事件,那么为了更换被点击按钮的图像,可以使用paint实 ...
- Qt修炼手册5_文件输入输出
Qt使用QFile类输入和输出文件. QFile通过I/0设备读写二进制文作. 文本文件和资源文内容.Qt还提供QTextStream和QDataStream类, 它们能通过数据流有效读写数据. 换言 ...
最新文章
- 一年两次新产品发布,APICloud上线App定制服务平台
- 网络推广方法中浅谈网站中的内容如何优化好?
- ISP与IAP的区别
- Vue实现Todo List
- oracle查看jdk文档_Oracle JDK 9 Early Access文档已更新
- 打卡小程序源码修复登录接口
- 斌伯的博客园Blog开张大吉
- OpenCV的DNN模块
- java 性能调优,使用 async-profiler + FlameGraph火焰图 分析cup消耗热点代码
- 【天锐绿盾】2022年代理商技术认证培训考核试卷(A卷)
- IT 工作者如何写交接文档
- 一个简单的HTML网页 故宫学生网页设计作品 dreamweaver作业静态HTML网页设计模板 旅游景点网页作业制作
- PostgreSQL 13 新特性之 FETCH FIRST WITH TIES
- SLG手游的战斗抽象
- 阿里云elasticsearch试用套路
- latex参考文献中输入
- centos7启动服务uthorization not available. Check if polkit service is running or see debug message for
- html左侧导航栏制作,20个巧用侧边栏的网页设计作品
- AI+药物设计:AI制药与产业前沿
- yolov5目标框预测