用qt写的求圆的面积程序,qt ui界面设计教程显示错误。代码错误请看看问题在哪。正确的显示qt ui界面设计教程图片我放到了下面图片。

本帖子已过去太久远了,不再提供回复功能。您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
第1章 Qt概述.ppt 35页
本文档一共被下载:
次 ,您可全文免费在线阅读后下载本文档。
下载提示
1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
2.该文档所得收入(下载+内容+预览三)归上传者、原创者。
3.登录后可充值,立即自动返金币,充值渠道很便利
需要金币:350 &&
你可能关注的文档:
··········
··········
1.3.2代码实现简单实例(2)在上述工程的dialog.h中添加如下加黑代码:classDialog:publicQDialog{ Q_OBJECTpublic: Dialog(QWidget*parent=0); ~Dialog();private: QLabel*label1,*label2; QLineEdit*lineE QPushButton*};此时要在文件最开始加入头文件:#include&QLabel&#include&QLineEdit&#include&QPushButton&1.3.2代码实现简单实例(3)在dialog.cpp中添加如下代码:Dialog::Dialog(QWidget*parent):QDialog(parent){label1=newQLabel(this);label1-&setText(tr(&请输入圆的半径:&));lineEdit=newQLineEdit(this);label2=newQLabel(this);button=newQPushButton(this);button-&setText(tr(&显示对应圆的面积&));QGridLayout*mainLayout=newQGridLayout(this);mainLayout-&addWidget(label1,0,0);mainLayout-&addWidget(lineEdit,0,1);mainLayout-&addWidget(label2,1,0);mainLayout-&addWidget(button,1,1);}其中,QGridLayout*mainLayout=newQGridLayout(this)用于布局管理器,将所有控件的位置固定。1.3.2代码实现简单实例(4)在此文件一开始添加头文件:#include&QGridLayout&运行结果如图1.25所示。1.3.2代码实现简单实例方式1:在LineEdit文本框内输入所需圆的半径值,单击“显示对应圆的面积”按钮后,在label2中显示相对应的圆的面积值。(1)打开dialog.h文件,在类构造函数和控件成员声明后,添加如下加黑代码:classDialog:publicQDialog{......QPushButton*privateslots:voidshowArea();};1.3.2代码实现简单实例(2)打开dialog.cpp文件,在构造函数中添加如下加黑代码:Dialog::Dialog(QWidget*parent):QDialog(parent){......mainLayout-&addWidget(button,1,1);connect(button,SIGNAL(clicked()),this,SLOT(showArea()));}(3)在showArea()中实现显示圆面积功能,代码如下:voidDialog::showArea(){QStringtempSQStringvalueStr=lineEdit-&text();intvalueInt=valueStr.toInt(&ok);doublearea=valueInt*valueInt*PI;label2-&setText(tempStr.setNum(area));}1.3.2代码实现简单实例(4)在此文件开始处添加全局变量:conststaticdoublePI=3.1416;(5)在LineEdit中输入圆半径值,单击“显示对应圆的面积”按钮后,在label2中显示圆面积值,如图1.26所示。1.3.2代码实现简单实例方式2:在LineEdit文本框中输入所需圆的半径值后,不必单击“显示对应圆的面积”按钮,直接在label2中显示圆的面积值。操作步骤和方式1相同,只是在上述第(2)步骤中,添加的代码修改为如下加黑代码:Dialog::Dialog(QWidget*parent):QDialog(parent){......mainLayout-&addWidget(button,1,1);connect(lineEdit,SIGNAL(textChanged(QString)),this,SLOT(showArea()));}第1章Qt概述1.11.21.3什么是QtQt5的安装Qt5开发步骤及实例1.1什么是QtQt是一个跨平台的C++图形用户界面应用程序框架。它为应用程序开发者提供建立艺术级图形用户界面所需的所有功能。它是完全面向对象的,很容易
正在加载中,请稍后...本帖子已过去太久远了,不再提供回复功能。晴朗1106 的BLOG
用户名:晴朗1106
访问量:55640
注册日期:
阅读量:5863
阅读量:12276
阅读量:396258
阅读量:1086910
[匿名]yurenchen2:
[匿名]defer:
51CTO推荐博文
&&&&& 近日在测试软件功能时,发现一些不是太显眼问题,如希望在点击窗口右上角的X按钮关闭窗口时,能够提示用户是否确认关闭;使用完软件并关闭主程序时,打开的子窗口在主窗口关闭后能够同时关闭等一些问题。当然,这些问题并不影响软件的功能应用,但作为一个面向广大用户的实用软件的话,这显然不太符合用户的使用习惯。并且,加入对话框的操作能避免一些不小心的错误操作给用户带来的麻烦。对此,我本人针对该问题做了一些修改工作,以使窗口关闭时,跳出对话框提示用户是否确认关闭,以及在主窗口关闭时,响应已打开的子窗口同时全部关闭。以下是本人对此做出的一些总结。
&&&&&&& 使用QT编辑界面,其中带来很大方便的一点就是Qt中自带丰富的、种类齐全的类及其功能函数,程序员可以在编辑程序的过程中简单地直接调用。关于窗口关闭的操作,在这里指出常用的三个槽,即quit(),exit()以及close()。
&&&&&&&& 首先说明窗口退出时,系统提示对话框的代码编辑。对主程序的退出,可以调用成员函数exit(),同时也可以调用槽quit(),二者此时都能起到关闭应用程序的作用。只是应注意二者调用的方式不同。如下程序示例:
&&&&&&&& QApplication*
&&&&&&&& app-&exit(0);
&&&&&&&& }
&&&&&&&& 或者:
&&&&&&&& QApplication*
&&&&&&&& app-&quit();
&&&&&&&& }
&&&&&&& 此时二者是等价的,即void QApplication::quit ()等价于函数调用 QApplication::exit( 0 )。此时,若需要给出用户提示,则只需要在程序当中添加QMessageBox的消息判断语句,以提示用户是否确定退出应用程序。另外,quit()作为槽,也可以连接信号和槽的形式,响应某个信号后关闭应用程序。如:
QPushButton *quitButton = new QPushButton( "Quit" );&&&&&&&&& connect( quitButton, SIGNAL(clicked()), qApp, SLOT(quit()) );
&&&&&&&&& 如果关闭的不是应用程序,而是关闭窗口等部件的形式,则必须调用close()函数,已关闭部件。如下:
&&&&&&&&& if (!(QMessageBox::information(this,tr("CT Control View"),tr("Do you really want to log out CT Control View?"),tr("Yes"),tr("No"))))&&&&&&&& {&&&&&&&&&&&&& this-&close();&&&&&&&& &}
&&&&&&&&& 其中通过一条if语句,判断条件为一个对话框,根据用户的选择做出是否关闭该部件,this在这里代表当前窗口部件对象的地址。当用户选择“Yes”时,该窗口部件退出;反之则取消退出操作。
&&&&&&&& 至此,我们已经简单了解了应用程序和窗口等部件的退出或关闭的代码编辑。然而,如果用户点击窗口右上角的X按键时,你会发现窗口仍然会在不给出任何提示的情况下直接退出了,即便你在程序当中已添加了提示的对话框语句。那为什么此时的关闭操作没有按我们希望的那样先给出提示对话框呢?原因是此时的关闭操作并没有引起调用带有提示消息的关闭或退出语句。当用户点击X关闭窗口时,系统会自动将这个事件告之某个特定的函数,即void QWidget::closeEvent ( QCloseEvent&*&e ),因此,这种情况应特别注意。在关闭窗口前,可先定义一条消息语句,以提示用户是否确定关闭窗口。如:
& void mainWindow::closeEvent( QCloseEvent * event ){&&& switch( QMessageBox::information( this, tr("CT Control View"),&&tr("Do you really want to log out CT Control View?"),&&tr("Yes"), tr("No"),&&0, 1 ) ) &{&&& case 0:&&event-&accept();&&&&&&&&&& case 1:&default: &&&&&&& event-&ignore();&&&&&&& &}&& }
&&&&&&&& 编译程序后,系统会在用户响应close操作时,自动调用该语句。也许这个时候你还会问,上面的那个功能函数究竟是把它定义成槽呢,还是定义成成员函数。答案是二者都可以。一方面槽本身就是一个特殊的成员函数,除了能与信号连接之外,其功能与函数无异。另一方面,此时不需要额外设置连接信号和槽,添加该功能函数之后,窗口一旦有了close操作,机会立即响应该。
&&&&&&&& 尽管添加closeEvent( QCloseEvent * event )这一功能函数之后,窗口会在关闭时给出提示对话框。但有时候还会发生这样一种情况:在点击确认关闭后,还会再会出现一个对话框,即提示对话框会出现两次。那这又是什么原因呢?其实很简单,那是因为closeEvent( QCloseEvent * event )只会响应close的操作,出现两次对话框无疑是在自定义的关闭函数中又添加一条提示对话框语句,确认关闭后,响应close操作,这时系统又会马上调用closeEvent( QCloseEvent * event )这个函数。因此,解决的办法是只定义一个带提示对话框的关闭函数,对不同的关闭操作都相应closeEvent( QCloseEvent * event )这个函数即可。
&&&&&&&& 最后,如果想要在关闭主窗口或主程序时,所有打开的独立的子窗口都能同时被关闭。那么这个时候一般是在main.cpp文件中连接信号void QApplication::lastWindowClosed ();关于lastWindowClosed()的详细介绍,这里不作说明,需要使用时可以使用Qt Assistant查看其使用发法。如:
int main( int argc, char ** argv ){&&& QApplication a( argc, argv );
&&& ABMainWindow *mw = new ABMainWindow();&&& mw-&setCaption( "Qt Example - Addressbook" );&&& a.setMainWidget( mw );
&&& mw-&show();
&&& a.connect( &a, SIGNAL( lastWindowClosed() ), &a, SLOT( quit() ) );&&& int result = a.exec();&&&&&&}
&&&&&&&&这样,系统会在关闭主窗口部件时,同时关闭打开的其它子窗口程序。比较值得说明的是,并不是使用了a.connect( &a, SIGNAL( lastWindowClosed() ), &a, SLOT( quit() ) )这条语句后就一定能实现该功能。在此之前,必须特别注意是否设定了主窗口部件,即调用setMainWidget这一功能函数,这样,当关闭这一主窗口部件时,才会响应关闭这一时刻已打开的其它子窗口部件。
&本文出自 “” 博客,请务必保留此出处
了这篇文章
类别:未分类┆阅读(0)┆评论(0)
15:50:34 22:04:29

我要回帖

更多关于 qt界面设计 的文章

 

随机推荐