当前位置: 首页 > news >正文

吕梁seo网站建设湘潭网站建设价格

吕梁seo网站建设,湘潭网站建设价格,苏州住房和城乡建设局网站首页,小蘑菇网站建设软件实现功能#xff1a; 程序开始出现一个对话框#xff0c;按下按钮后便能进入主窗口#xff0c;如果直接关闭这个对话框#xff0c;便不能进入主窗口#xff0c;整个程序也将退出。当进入主窗口后#xff0c;我们按下按钮#xff0c;会弹出一个对话框#xff0c;无论如何…实现功能 程序开始出现一个对话框按下按钮后便能进入主窗口如果直接关闭这个对话框便不能进入主窗口整个程序也将退出。当进入主窗口后我们按下按钮会弹出一个对话框无论如何关闭这个对话框都会回到主窗口。 实现原理 程序里我们先建立一个主工程作为主界面然后再建立一个对话框类将其加入工程中然后在程序中调用自己新建的对话框类来实现多窗口。 实现过程 1.首先新建Qt4 Gui Application工程工程名为nGuiBase class选为QWidget。建立好后工程文件列表如下图。 2.新建对话框类如下图在新建中选择Qt Designer Form Class。 3.选择Dialog without Buttons。 4.类名设为myDlg。 5.点击Finish完成。注意这里已经默认将其加入到了我们刚建的工程中了。 6.如下图在mydlg.ui中拖入一个Push Button将其上的文本改为“进入主窗口”在其属性窗口中将其objectName改为enterBtn在下面的Signals and slots editor中进行信号和槽的关联其中Sender设为enterBtnSignal设为clicked()Receive设为myDlgSlot设为accept()。这样就实现了单击这个按钮使这个对话框关闭并发出Accepted信号的功能。下面我们将利用这个信号。 7.修改主函数main.cpp如下 #include QtGui/QApplication#include “widget.h”#include “mydlg.h”       //加入头文件int main(int argc, char *argv[]){    QApplication a(argc, argv);    Widget w;   myDlg my1;       //建立自己新建的类的对象my1    if(my1.exec()QDialog::Accepted)    //利用Accepted信号判断enterBtn是否被按下    {        w.show();         //如果被按下显示主窗口        return a.exec();       //程序一直执行直到主窗口关闭    }    else return 0;     //如果没被按下则不会进入主窗口整个程序结束运行} 主函数必须这么写才能完成所要的功能。 如果主函数写成下面这样 #include QtGui/QApplication#include “widget.h”#include “mydlg.h”int main(int argc, char *argv[]){    QApplication a(argc, argv);        myDlg my1;    if(my1.exec()QDialog::Accepted)    { Widget w; w.show();      }   return a.exec(); } 这样因为w是在if语句里定义的所以当if语句执行完后它就无效了。这样导致的后果就是按下enterBtn后主界面窗口一闪就没了。如果此时对程序改动了再次点击运行时就会出现error: collect2: ld returned 1 exit status的错误。这是因为虽然主窗口没有显示但它只是隐藏了程序并没有结束而是在后台运行。所以这时改动程序再运行时便会出错。你可以按下调试栏上面的红色Stop停止按钮来停止程序运行。你也可以在windows任务管理器的进程中将该进程结束而后再次运行就没问题了当然先关闭Qt Creator而后再重新打开这样也能解决问题。 如果把程序改为这样 #include QtGui/QApplication#include “widget.h”#include “mydlg.h”int main(int argc, char *argv[]){    QApplication a(argc, argv);        myDlg my1; Widget w; if(my1.exec()QDialog::Accepted)    {          w.show();      }   return a.exec(); } 这样虽然解决了上面主窗口一闪而过的问题但是如果在my1对话框出现的时候不点enterBtn而是直接关闭对话框那么此时整个程序应该结束执行但是事实是这样的吗如果你此时对程序进行了改动再次按下run按钮你会发现又出现了error: collect2: ld returned 1 exit status的错误这说明程序并没有结束我们可以打开windows任务管理器可以看到我们的程序仍在执行。 因为return a.exec();一句表示只要主窗口界面不退出那么程序就会一直执行。所以只有用第一种方法将该语句也放到if语句中而在else语句中用else return 0; 这样如果enterBtn没有被按下那么程序就会结束执行了。 到这里我们就实现了一个界面结束执行然后弹出另一个界面的程序。下面我们在主窗口上加一个按钮按下该按钮弹出一个对话框但这个对话框关闭不会使主窗口关闭。 8.如下图在主窗口加入按钮显示文本为“弹出一个对话框”在其上点击鼠标右键在弹出的菜单中选择go to slot。 9.我们选择单击事件clicked()。 10.我们在弹出的槽函数中添加一句 my2.show(); my2为我们新建对话框类的另一个对象但是my2我们还没有定义所以在widget.h文件中添加相应代码如下先加入头文件再加入my2的定义语句这里我们将其放到private里因为一般的函数都放在public里而变量都放在private里。 #ifndef WIDGET_H #define WIDGET_H #include QtGui/QWidget #include “mydlg.h”    //包含头文件 namespace Ui { class Widget; } class Widget : public QWidget { Q_OBJECT public: Widget(QWidget *parent 0); ~Widget(); private: Ui::Widget *ui; myDlg my2;       //对my2进行定义 private slots: void on_pushButton_clicked(); }; #endif // WIDGET_H 到这里再运行程序便能完成我们实验要求的功能了。整个程序里我们用两种方法实现了信号和槽函数的关联第一个按钮我们直接在设计器中实现其关联第二个按钮我们自己写了槽函数语句其实图形的设计与直接写代码效果是一样的。 这个程序里我们实现了两类窗口打开的方式一个是自身消失而后打开另一个窗口一个是打开另一个窗口而自身不消失。可以看到他们实现的方法是不同的。
http://www.hkea.cn/news/14265819/

相关文章:

  • 常州网站建设策划工会网站建设策划书
  • 手机网站建设公微信小程序网页版
  • 吉安网站推广怎样做网站全屏代码
  • 无需域名网站建设dedecms 百度网站地图
  • 金科网站建设山西seo推广系统
  • 网站服务器查询平台无锡做网站哪里好
  • 网站开发 视频播放器做高端网站建设
  • 校园门户网站建设方案企业服务有哪些内容
  • 网站技术维护wordpress编辑器所有功能
  • 企业网站设计开发服务wordpress本地搭建忘记账号密码
  • 网站开发pythonwordpress 缩略图优化
  • 建立第一个网站咸阳高端网站建设
  • 百度不更新网站wordpress侧边联系方式
  • 长沙建一个网站多少钱seo网站分析案例
  • 不懂英文怎么做英文的seo网站微信开发公众平台公司
  • 廊坊网站排名优化公司哪家好动画制作软件免费
  • wap网站解析服装网站推广计划书范文500字
  • 南京做机床的公司网站修改网站默认首页
  • 无锡做公司网站多少钱wordpress slider插件下载
  • 跨境电商网站如何做推广wordpress怎么让文章页新窗口打开
  • 建设端午节网站的目的主题如何给wordpress文章排版
  • 楚雄网站建设fusion app
  • 建设企业网站小微安卓手机开发者模式
  • 专业网站建设流程商品推广软文范例100字
  • 贵阳网站建设是什么意思有没有做英语试题的网站
  • 网站建设教程出售用苏州久远网络建设银行网站怎么下载地址
  • 西安买公司的网站建设网站制作-杭州
  • 如何开展网站建设创建网站有什么用
  • 宝安企业网站建设北京高端网站设计外包公司
  • 哈尔滨网站定制公司一起做网店潮汕站