
第26讲常用控件.ppt
24页26第讲118 九月 2024•1目标LabelLabel控件控件PushButtonPushButton控件控件LineEditLineEdit控件控件•2问题引入问题引入QT控件编程控件编程How To ?•3Label控件控件•((1)) 定义定义QLabel* m_labelOrdered = new QLabel("0", this);((2)) 对文字的左右对齐设置对文字的左右对齐设置m_labelOrdered->setAlignment(Qt::AlignLeft);//左对齐左对齐其它还有,横向对齐:其它还有,横向对齐:Qt::AlignAuto – 根据语言内容,大部分是左对齐右对齐的有:阿拉伯根据语言内容,大部分是左对齐右对齐的有:阿拉伯语、希伯来(现代以色列)语语、希伯来(现代以色列)语Qt::AlignLeft – 居左居左Qt::AlignRight – 居右居右Qt::AlignHCenter – 居中居中Qt::AlignJustify – 两端对齐并不是所有时候都有效,有时会被两端对齐并不是所有时候都有效,有时会被AlignAuto中断中断竖向对齐:竖向对齐:Qt::AlignTop – 居顶居顶Qt::AlignBottom – 居底居底Qt::AlignVCenter – 居中居中同时只可以使用一个横向或竖向对齐方式。
但是还有一个同时设置横竖方同时只可以使用一个横向或竖向对齐方式但是还有一个同时设置横竖方向的标记:向的标记:Qt::AlignCenter – 横竖都居中横竖都居中•内容自动换行:内容自动换行:•QLabel::WordBreak• •4Label控件控件•两个方法:两个方法:•((1)) 在在setText()时,用时,用HTML串赋值,里串赋值,里面加上换行符面加上换行符•((2)) 使用使用QTextEdit代替设置:代替设置:read-only/frame trued off/its palette's window/background brush set to no-brush用QTextEdit还有一个好处,就是还有一个好处,就是可以对内容进行赋值粘贴可以对内容进行赋值粘贴 • •5PushButton控件控件•6LineEdit控件控件•7窗体窗体vWidgetvDialogv多窗体•8练习练习v登入界面v实现功能:实现功能:v在弹出对话框中填写用户名和密码,按下登录按钮,如果用户名和密码均正确则进入主窗口,如果有错则弹出警告对话框•9新建新建Qt4 Gui Application工程工程v1. 新建Qt4 Gui Application工程,工程名为mainWidget,选用QWidget作为Base class:•10新建新建Qt Designer Form Class类类v2. 新建一个Qt Designer Form Class类,类名为loginDlg,选用Dialog without Buttons,将其加入上面的工程中。
•11设计界面设计界面v3.在logindlg.ui中设计下面的界面:行输入框为Line Edit其中用户名后面的输入框在属性中设置其object Name为usrLineEdit,密码后面的输入框为pwdLineEdit,登录按钮为loginBtn,退出按钮为exitBtn•12v将exitBtn的单击后效果设为退出程序,关联如下: •13v5.右击登录按钮选择go to slot,再选择clicked(),然后进入其单击事件的槽函数,实现v void loginDlg::on_loginBtn_clicked(){ accept();}•14v6.改写main.cpp:v#include
将登陆按钮的槽函数改为:void loginDlg::on_loginBtn_clicked(){if(m_ui->usrLineEdit->text()==tr(“qt”)&&m_ui->pwdLineEdit->text()==tr(“123456″))//判断用户名和密码是否正确accept();else{QMessageBox::warning(this,tr(“Warning”),tr(“user name or password error!”),QMessageBox::Yes);//如果不正确,弹出警告对话框}}v并在logindlg.cpp中加入#include
•20v 更改if判断语句,使这样的输入也算正确void loginDlg::on_loginBtn_clicked(){if(m_ui->usrLineEdit->text().trimmed()==tr(“qt”)&&m_ui->pwdLineEdit->text()==tr(“123456″))accept();else{QMessageBox::warning(this,tr(“Warning”),tr(“user name or password error!”),QMessageBox::Yes);}}v加入的这个函数的作用就是移除字符串开头和结尾的空白字符•21v12. 如果输入错误了,重新回到登录对话框时,我们希望可以使用户名和密码框清空并且光标自动跳转到用户名输入框,最终的登录按钮的单击事件的槽函数如下:void loginDlg::on_loginBtn_clicked(){if(m_ui->usrLineEdit->text().trimmed()==tr(“qt”)&&m_ui->pwdLineEdit->text()==tr(“123456″))//判断用户名和密码是否正确accept();else{QMessageBox::warning(this,tr(“Warning”),tr(“user name or password error!”),QMessageBox::Yes);//如果不正确,弹出警告对话框m_ui->usrLineEdit->clear();//清空用户名输入框m_ui->pwdLineEdit->clear();//清空密码输入框m_ui->usrLineEdit->setFocus();//将光标转到用户名输入框}}•22练习练习v综合应用讲过的三个控件•23小结小结vLabel控件的使用vPushButton的使用vLineEdit控件使用•24。












