范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

Qt入门设计GoToCellDialog

  后面会制作一个简单的电子表格软件,这里先用Qt designer开发"Go to Cell"功能(跳转到指定的单元格),界面如下:
  一、使用Qt Designer设计界面
  启动designer $ export PATH=/opt/Qt5.9.8/5.9.8/gcc_64/bin/:$PATH$ designer
  拖拉控件,设置属性: - QLabel:objectName="label",text="&Cell Location";- QLineEdit:objectName="lineEdit";- QPushButton:objectName="okButton",enabled=false,text="OK",default=true;- QPushButton:objectName="cancelButton",text="Cancel";- QWidget:objectName="GoToCellDialog",windowTitle="Go to Cell";- Spacer(分隔符):objectName="horizontalSpacer"
  这里之所以将QWidget控件的objectName设置为以大写字母开头的"GoToCellDialog",是因为后面编译源码时,xxx.ui界面文件(XML)时会被转换为ui_xxx.h(C++),ui_xxx.h会以"GoToCellDialog"为类名定义一个界面类,类名的首字母应该大写。
  得到第一版ui:
  设置布局: - 选中lable和lineEdit,Form->Lay Out Horizontally:    * layoutName="topLayout"- 选中horizontalSpacer、okButton、cancelButton,Form->Lay Out Horizontally:    * layoutName="botLayout"- 选中goToCellDialog,Form->Lay Out Vertically:    * layoutName="mainLayout"- 选中goToCellDialog,Form->Adjust Size;
  得到第二版ui:
  设置Tab键顺序:
  Edit->Edit Tab Order,进入Tab编辑模式:
  F3重新进入Edit Widget模式,保存为:
  002_gotocell/gotocelldialog.ui。
  添加main.cpp:
  观察编译过程: $ lsbuild.sh  gotocelldialog.ui  main.cpp$ qmake -project$ ls002_gotocell.pro  build.sh  gotocelldialog.ui  main.cpp$ cat 002_gotocell.proFORMS += gotocelldialog.ui$ qmake 002_gotocell.pro$ ls002_gotocell.pro  build.sh  gotocelldialog.ui  main.cpp  Makefile$ make    * /opt/Qt5.9.8/5.9.8/gcc_64/bin/qmake -o Makefile 002_gotocell.pro    * /opt/Qt5.9.8/5.9.8/gcc_64/bin/uic gotocelldialog.ui -o ui_gotocelldialog.h    * g++  XXX -o main.o main.cpp    * g++ XXX -o 002_gotocell main.o XXX- qmake非常智能,能自动检测到xxx.ui文件;- xxx.ui会被添加到pro文件里,并且会在makefile里生成适当的规则来调用uic;- 在执行make时,uic会将xxx.ui(XML文件)转换为ui_xxx.h(C++文件);
  ui_gotocelldialog.h里有什么?
  - 我们在Qt Designer里通过可视化界面设计出来的goToCellDialog被Qt很智能地转换为了一个GoToCellDialog类;- Ui::GotoCellDialog类很显然就是Qt为我们抽离出来的专门负责界面显示的类,开发人员可以轻松地享受界面和业务分离的好处。- GoToCellDialog类没有父类,因此在main.cpp使用该对话框时需要给他传递一个QDialog对象,该QDialog对象是GoToCellDialog类里各种控件的父窗口;- GoToCellDialog->setupUi(QWiget *)接收一个QWiget对象,然后在该对象上添加了QLabel/QLineEdit等控件,并设置了控件的属性、布局等,从而构造出一个"Go to Cell" Dialog;- 在setupUi()里new了许多控件对象,但是没有任何地方delete,是因为Qt在删除父对象(QDialog对象)时,会自动删除其内部的所有子控件对象(QLabel/QPushButton等)和子布局对象
  二、为控件添加信号槽
  3个待实现的功能: - OK按钮触发跳转操作;- Cancel按钮退出对话框;- 限制lineEdit只能接受有效单元格;为了让对话框支持上面3个功能,最常用的方法就是定义一个新类,该新类同时继承Ui::GotoCellDialog(复用ui类的代码)和QDialog(支持信号槽),该新类的命名惯例是:和Ui::GotoCellDialog同名,但是不在命名空间Ui里。
  定义GotoCellDialog:
  gotocelldialog.h
  - 槽函数on_lineEdit_textChanged()用于响应QlineEdit的lineEdit_textChange()信号;
  嵌入式物联网需要学的东西真的非常多,千万不要学错了路线和内容,导致工资要不上去!
  无偿分享大家一个资料包,差不多150多G。里面学习内容、面经、项目都比较新也比较全!某鱼上买估计至少要好几十。
  点击这里找小助理0元领取:加微信领取资料
  实现GotoCellDialog:
  gotocelldialog.cpp
  - QRegExp是正则表达式;- QRegExpValidator是正则表达式验证器,将this(GoToCellDialog对象)传递给其构造函数,则QRegExpValidator对象会成为GoToCellDialog对象的子对象,当GoToCellDialog对象被删除时,QRegExpValidator对象也会被自动删除;- Qt的父-子对象机制是在QObejct中实现的,父对象会有一个子对象列表,父对象被删除时,会遍历的删除子对象;- 子控件会显示在它的父对象所在的区域中;- 没有父对象的对象,需要明确地使用delete删除;- clicked()是QDialog的自带信号,accept()/reject()是QDialog自带的槽;- setupUi()会自动将符合on_objectName_signalName()的所有槽和objectName对象的signalName()信号连接在一起,相当于自动建立信号槽:    * connect(lineEdit, SIGNAL(textChanged(const Qstring &)), this, SLOT(on_lineEdit_textChanged()));    * 信号函数的参数个数只要>=槽函数的参数个数就可以绑定在一起;    * 同一组信号槽是可以被重复绑定的,当一个信号发生时,重复绑定的槽会被调用多次。所以当Qt已经帮我们自动绑定信号槽时,就不要再自己手动去绑定了。    * 为了提升代码的可读性,可以不使用on_objectName_signalName()这种槽命名,然后自己去绑定;
  修改main.cpp,创建GotoCellDialog对象:
  运行效果:
  最后,总结一下使用Qt Designer 创建对话框的5个步骤: - 添加控件、设置控件属性;- 设置布局;- 设置Tab键;- 建立信号槽连接;- 实现槽;
  使用Qt Designer时,uic会自动为发生变化的窗口重新生成C++代码,开发人员只需对uic生成的类进行子类化,就可以轻松添加自定义函数的功能了,参考:
  《C++ GUI Qt4 编程》
  文章链接:
  https://mp.weixin.qq.com/s/arrWq6KOeddd1z7vP_Uxbg
  转载自:老吴嵌入式
  文章链接: Qt入门_设计GoToCellDialog

德媒地球最北的岛屿其实是一座冰山据德新社9月9日报道,丹麦科学家雷内福斯贝尔当日披露,科学家长期以来认为是世界上最北的一个岛屿,其实根本不是岛屿,而是一座覆盖着泥土和砾石的冰山。据报道,丹麦和瑞士科学家去年在格陵昆明市东川区岩脚村蔬菜种在白云里来源云南日报在东川区铜都街道,吃岩脚村的蔬菜犹如山珍。原因是岩脚村的蔬菜品质好数量少,有独特的甘甜清香味道,吃到岩脚村的蔬菜,就品尝到了浓浓的乡愁和恬静的自然。岩脚村坐落在乌蒙山中温室气体排放不是气候变化的主要原因杨新兴中国环境科学研究院气候中心中国北京100012摘要134字温室气体排放不是地球气候变化的主要原因,人类活动排放的二氧化碳更不是导致地球气候变暖的罪魁祸首。地球气候变化的主要原户外型录中的帅气造型,在这个高温天真的存在吗?诗人T。S。艾略特说,四月是最残酷的季节户外爱好者一定要大喊,错了,夏天才是在一个连植物都要休眠的季节还想尝试户外叠穿凹造型的话真的是还没出家门就已经败退了更别提在这多雨的季节如若中科院海洋所首次发现气候变暖引起鳗草地理分布南界北移现象近日,国际学术期刊Cell子刊iScience在线刊发了中科院海洋所研究成果,该研究首次发现了气候变暖致使鳗草地理分布南界北移的现象,揭示了全球气候变化对海草床生态系统的潜在影响。墨尔本CBD11公里内便宜城区出炉!迅速出手,别等市场下跌先驱太阳报9月11日报道称,靠近CBD的经济适用房可能看起来像童话故事,但如果你知道去哪里找的话,它们确实存在。PropTrack公布了距城市11公里以内的20个独立屋和单元房房价世界上海拔最高的胡杨林,四季风姿各异,就在我国的江河源头登高壮观天地间,大江茫茫去不还。黄云万里动风色,白波九道流雪山。它地大物博河川壮美,它原始神秘魅力独特。这里有中国最美的山,也有华夏最美的湖,既有高原大漠的博大与壮阔,也有河谷水乡云南省最具争议的著名旅游城市,人气却经久不衰,你去过吗?这里是刘小顺的旅行和生活研究所。大家都知道,位于我国西南地区的云南是一个旅游大省,有着特别丰富的旅游资源,因此每年都会吸引大量游客来到云南省旅游。云南省既有壮丽辽阔的自然风光,也有2022年极端高温来袭,但是2023年会更热?太阳活动影响地球温度吗2022年的夏天即将成为一个炎热的夏天。2022年6月,世界陆地地区出现了有记录以来最热的气温破纪录的热浪席卷了北半球,特别是欧洲大陆亚洲和北美洲的部分地区。在全球范围内,一波又一中华体育文化展中秋体育文化交流活动在北京举行新华社北京9月10日电以明月净初心辉煌逐梦想为主题的中华体育文化展中秋体育文化交流活动10日在国家体育场(鸟巢)举办。多位冠军运动员艺术家在活动中向中国体育博物馆进行了捐赠。10日服贸观止北京市金融监管局局长李文红到十四五期末建成与大国首都地位相匹配的现代金融体系北京商报讯(记者廖蒙)9月1日9月5日,2022年中国国际服务贸易交易会在北京举行。期间,北京市地方金融监督管理局党组书记局长李文红就此前发布的北京市十四五时期金融业发展规划进行了
人过60岁后,需要多少存款才够养老?三位老人说出实话前言退休之后的生活并不是那么容易,如果我们不能够把握时机可能就会错过很多机会,人生没有机会的话,日子就会过得比较糟糕。每一个人都担心自己的养老问题,其实大多数时候都是因为我们自己做看完幸福到万家我空虚了,结局看似圆满,却有5个大坑未填播了将近一个月的幸福到万家终于迎来大结局,可播出效果却不太理想,口碑明显下滑,豆瓣评分已经跌到7。1。这还不算,就连本剧编剧也亲自下场开撕,甚至直接口述了最原始剧本内容,看完赵冬苓风险人员隔离时间能否再缩短?中疾控专家答南都南都讯记者吴斌发自北京第九版新冠疫情防控方案6月28日发布后,多地发生了本土聚集性疫情。新版疫情防控方案在执行上是否有效果呢?7月21日,在国务院联防联控机制新闻发布会上,中国疾控老虎长大后,为什么雄性会扩散到更远的地方,雌性却紧挨着母亲?俗话说一山不容二虎,老虎是有强烈领地意识的动物,在它们的领地内任何同性都不能闯入,除非是异性,因此也有一种说法叫做一山不容二虎,除非一公一母。其中雄虎的领地面积较大,在它的领地范围49年,宋时轮在宴会上握住饭店老板娘的手,她疑惑道您认识我?1949年5月27日,上海战役取得全面胜利。这意味着上海终于迎来解放,上海群众也将过上安宁日子,大家都沉浸在巨大的喜悦中。原新四军联络部长杨帆进入上海市后,同样深感喜悦。思索一番后终于明白,那个日本老太太为什么会在丈夫去世后,手舞足蹈了给你们说一件真事,我自己都不敢相信。我同学的妈妈怂了一辈子,看起来病恹恹的,精神也有点不正常,那个脸拉得好长没有一点肉,反正农村人就讲那是苦命相,小孩看了都怕,包括我。我这个同学家1963年日本西口彰事件,连杀五人,逃亡四个月被十岁小女孩识破1964年,是让日本岛国开心的一年,因为奥运会在东京举行,这也是他们在经历战争之后翻身的机会,为了展示自己国家的精神面貌,爱好和平,那一年的东京可谓是治安和谐,环境清幽。但就是在这张少华病逝1年多了,老伴张惠宝的痴爱让人泪目早年的张少华是一名评剧演员,在剧院上班几十年。剧院退休后,看着荧幕上的演员,她很想尝试一下,当一把影视演员。1998年,她果然有了这样一次机会,接到了电视剧龙堂的戏。剧组搭档还有张幸福到万家污染事件背后,一关键人物浮出水面,会是闷葫芦吗由赵丽颖刘威唐曾领衔主演的幸福到万家,是根据长篇小说秋菊传奇改编。主要讲述了何幸福在事业与婚姻爱情与亲情的多重考验下不断成长的故事。随着临近大结局,何幸福因为水尾村孩子铅中毒事件,老照片70年代的伊朗女学生,民国时期在哈尔滨街头乞讨的欧洲人1948年2月巡视北平的蒋介石,站在他后面的是傅作义,傅作义的嫡系部队在1月中旬才被解放军歼灭了七千多人,35军的军长也自杀了,此时的傅作义只能用一个字来形容,那就是愁,他也不知道美军战舰再次穿越台湾海峡,解放军已不客气,山东舰严阵以待DDG65本福德号阿利伯克级导弹驱逐舰是在今年6月25日闯入中国南海进行军事行动的,DDG65本福德号阿利伯克级导弹驱逐舰进入中国南海的目的相当明确,就是为里根号核动力航空母舰打前