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_动态设计相关推荐

  1. Qt修炼手册1_溢美之词和Designer设计

    1.QT是啥? Qt是一个跨平台的C++图形用户界面应用程序框架.它为应用程序开发者提供建立艺术级图形用户界面所需的所有功能.Qt是诺基亚公司的一个产品. 1996年, Qt进入商业领域,已成为全世界 ...

  2. Qt修炼手册10_QTableWidget控件使用说明及实践

    1.QTableWidget类简介 QTableWidget是QT对话框设计中常用的显示数据表格的控件. QTableWidget继承于类QTableView,所以在学习QTableWidget之前可 ...

  3. Qt修炼手册9_Ui名字空间及setupUi()原理解读

    1.前言 用最新的QtCreator选择GUI的应用会产生含有如下文件的工程: 1.1 *.pro文件 QT += core gui //使用Qt的Core和Gui模块.QT将自己的库函数分为多个模块 ...

  4. Qt修炼手册6_图形:图形视图框架

    1.前言 主要为了学习可以在GUI上有效显示或管理大量图形对象的API,以及进行显示.扩大.缩小等操作. 2.图形视图框架(Graphics View Framework) 图形视图框架使用BSP树算 ...

  5. Qt修炼手册12_线程同步与线程等待条件

    1.同步线程:何为同步? 参考百度百科: 1.1 线程 线程是进程中的一个实体,是被系统独立调度和分配的基本单位.一个进程可以有多个线程,一个线程必须有一个父进程,线程自己不拥有系统资源,只有运行必须 ...

  6. Qt修炼手册11_多线程编程和QThread类

    1.事件循环 学习QT多线程编程之前,有必要先熟悉事件循环的概念. 先看一个单线程界面程序的主函数代码: int main(int argc, char* argv[]) {QApplication ...

  7. Qt修炼手册8_常用的容器类QVector和QList

    1.前言 Qt提供了非常有用的容器类的迭代器类,用于修改.删除.插入和保存数据.本着学习的角度,重点研究了QVector和QList两个类. QT中,具有STL风格的迭代器具有两种数据类型,分别是只读 ...

  8. Qt修炼手册7_图形:用户自定义QGraphicsItem

    1.前言 Qt中提供的Item未必能够满足需要,因此有必要实现自定义的QGraphicsItem对象.与QPushButton一样,如果发生鼠标事件,那么为了更换被点击按钮的图像,可以使用paint实 ...

  9. Qt修炼手册5_文件输入输出

    Qt使用QFile类输入和输出文件. QFile通过I/0设备读写二进制文作. 文本文件和资源文内容.Qt还提供QTextStream和QDataStream类, 它们能通过数据流有效读写数据. 换言 ...

最新文章

  1. 一年两次新产品发布,APICloud上线App定制服务平台
  2. 网络推广方法中浅谈网站中的内容如何优化好?
  3. ISP与IAP的区别
  4. Vue实现Todo List
  5. oracle查看jdk文档_Oracle JDK 9 Early Access文档已更新
  6. 打卡小程序源码修复登录接口
  7. 斌伯的博客园Blog开张大吉
  8. OpenCV的DNN模块
  9. java 性能调优,使用 async-profiler + FlameGraph火焰图 分析cup消耗热点代码
  10. 【天锐绿盾】2022年代理商技术认证培训考核试卷(A卷)
  11. IT 工作者如何写交接文档
  12. 一个简单的HTML网页 故宫学生网页设计作品 dreamweaver作业静态HTML网页设计模板 旅游景点网页作业制作
  13. PostgreSQL 13 新特性之 FETCH FIRST WITH TIES
  14. SLG手游的战斗抽象
  15. 阿里云elasticsearch试用套路
  16. latex参考文献中输入
  17. centos7启动服务uthorization not available. Check if polkit service is running or see debug message for
  18. html左侧导航栏制作,20个巧用侧边栏的网页设计作品
  19. AI+药物设计:AI制药与产业前沿
  20. yolov5目标框预测

热门文章

  1. 将Asp.Net页面输出到EXCEL里去
  2. Linux 下Oracle Client JAVA JDBC 集成点滴
  3. 中国六个漂亮的古镇风景名胜区网站欣赏
  4. 内存泄漏检测工具(转载)
  5. HD 1253 胜利大逃亡(bfs)
  6. bnu- 34985 Elegant String
  7. Github上的资源清单
  8. Android 编译 SDK
  9. swfupload简单使用
  10. 苛评VCL: 接口与TObject