Qt入门(4)——Qt常见控件
2015-12-28 09:55
381 查看
Qt提供了大量的内建控件及通用对话框可满足程序员的绝大部分要求。我们将对这些控件和对话框作一个大概的介绍。
1. QLabel
定义
[cpp] view
plaincopy
QLabel* m_labelOrdered = newQLabel("0", this);
对文字的左右对齐设置
[cpp] view
plaincopy
m_labelOrdered->setAlignment(Qt::AlignLeft);//左对齐
其它还有,横向对齐:
Qt::AlignAuto – 根据语言内容,大部分是左对齐。右对齐的有:阿拉伯语、希伯来(现代以色列)语
Qt::AlignLeft – 居左
Qt::AlignRight – 居右
Qt::AlignHCenter – 居中
Qt::AlignJustify – 两端对齐。并不是所有时候都有效,有时会被AlignAuto中断
竖向对齐:
Qt::AlignTop – 居顶
Qt::AlignBottom – 居底
Qt::AlignVCenter – 居中
同时只可以使用一个横向或竖向对齐方式。但是还有一个同时设置横竖方向的标记:
Qt::AlignCenter – 横竖都居中
2. QPixmap
定义和赋值
[cpp] view
plaincopy
QPixmap pix;
pix.load("images/typebutton.PNG");
QPixmappix("images/typebutton.PNG");
QPixmap pix = newQPixmap("images/typebutton.PNG");
3. QString
给QString赋值
[cpp] view
plaincopy
QString s = “sss”;
也可以:
[cpp] view
plaincopy
s.sprintf(“sss %d”, 2);
int转换成QString:
[cpp] view
plaincopy
int i=0;
//静态函数的方法
QString s = QString::number(i, 10);//10表示10进制,也可以不写,默认就是10进制
//非静态函数的方法
[cpp] view
plaincopy
QString::setNum ( ulong n, int base = 10 )
这两个函数同样使用于其他数字类型,如:uint, long, float, bouble等
(3) float、double转换成QString
同上面的函数相同,若想规定输出格式,则可通过参数设定。
[cpp] view
plaincopy
QString QString::number ( double n, char f= 'g', int prec = 6 )
setNum()也一样。f是表示输出的格式,prec是保留的小数位数,被截取的部分四舍五入。
4. QLineEdit
密码框的实现
QLineEdit,将echoMode属性设置成:Password
这样,输入的字符都是圆点显示
5. QDialog
动态定义、弹出对话框
qt对话框类是
[cpp] view
plaincopy
QDialog (QWidget * parent = 0, const char * name = 0, bool modal = FALSE, WFlags f = 0 )
modal:指是否模式对话框,也可以用setModal(bool)改变设置;
f:指窗口的样式。
如:
[cpp] view
plaincopy
DDishDetailForm *dishDetailForm = newDDishDetailForm( this->parentWidget(),
[cpp] view
plaincopy
<span style="white-space:pre"> </span> "dishdetailform",
[cpp] view
plaincopy
<span style="white-space:pre"> </span>TRUE,WStyle_Customize | WStyle_NoBorder);
定义了一个DDishDetailForm的弹出窗口,模式对话框,无边框。
弹出对话框,可以用:
[cpp] view
plaincopy
dishDetailForm->show();//显示的模式按照对应的为准
也可以用:
[cpp] view
plaincopy
dishDetailForm->exec();//则无论定义的modal设置的是什么,都按照模式对话框显示
使用QTDesigner导航生成的Form
虽然导航生成的Form也是继承自QDialog,但是它封装了构造函数和析构函数。但是它分别在两个函数里默认调用了init()和destroy()两个函数。
所以要想做什么初始化的操作就定义一个init()函数,写在里面。
要想在析构函数里做什么就定义一个destroy()函数,写在里面。
6. QComboBox
属性设置
设置下拉的高度,高度是可见的item行数:
[cpp] view
plaincopy
comboBox->setSizeLimit(5); //5行
如果不想使用滚动条,而是固定高度,横向扩展显示,则做下面设置即可:
[cpp] view
plaincopy
m_comboBox->listBox()->setColumnMode(QListBox::Variable);//默认即是
m_comboBox->listBox()->setVariableWidth(true);//使下拉列表的宽度可变
m_comboBox->listBox()->setRowMode(QListBox::FitToHeight);//行数和下拉的高度一致(不出现滚动条)
chartTypeTextLabel->setBuddy(chartTypeComboBox );
7. QDate、 QTime and QDateTime
QT提供了三个日期时间方面的类:QDate、QTime、QDateTime。使用方法都差不多,也非常方便。三个类都包含在头文件<qdatetime.h>中。
以QDateTime为例,说明获取当前时间的使用方法。
方法:
[cpp] view
plaincopy
currentDataTime()
因为是静态函数,所以不需要定义对象。返回的是QDateTime对象,若想转换成格式字符串,使用toString()函数即可。例子如下:
[cpp] view
plaincopy
QString ss =(QDateTime::currentDateTime()).toString("yyyy-MM-dd hh:mm:ss");
9. QProgressDialog
我们处理耗费时间的操作时经常会用到滚动条。直接上代码:
[cpp] view
plaincopy
#include <qapplication.h>
int NumRows = 10;
QProgressDialog progress(tr("Savingfile..."), tr("Cancel"), NumRows);
progress.setModal(true);
for (int row = 0; row < NumRows; ++row){
progress.setProgress(row);
qApp->processEvents();
if (progress.wasCanceled()) {
//dosomething
return;
}
}
说明:
NumRows,进度条的总步数,QProgressDialog会根据这个数自动算出每一步走多少长度。
QApplication::processEvents()用来处理任何repaint事件(如,接受用户点击Cancel按钮)(但是好像不写这句也可以)。
我们不调用show()函数,是因为QProgressDialog自己已经做了。如果这个过程变得极短,则dialog根本不会被显示。
以下是Qt的控件类的完整继承图:
FROM: http://blog.csdn.net/itcastcpp/article/details/39049255?utm_source=tuicool&utm_medium=referral
1. QLabel
定义
[cpp] view
plaincopy
QLabel* m_labelOrdered = newQLabel("0", this);
对文字的左右对齐设置
[cpp] view
plaincopy
m_labelOrdered->setAlignment(Qt::AlignLeft);//左对齐
其它还有,横向对齐:
Qt::AlignAuto – 根据语言内容,大部分是左对齐。右对齐的有:阿拉伯语、希伯来(现代以色列)语
Qt::AlignLeft – 居左
Qt::AlignRight – 居右
Qt::AlignHCenter – 居中
Qt::AlignJustify – 两端对齐。并不是所有时候都有效,有时会被AlignAuto中断
竖向对齐:
Qt::AlignTop – 居顶
Qt::AlignBottom – 居底
Qt::AlignVCenter – 居中
同时只可以使用一个横向或竖向对齐方式。但是还有一个同时设置横竖方向的标记:
Qt::AlignCenter – 横竖都居中
2. QPixmap
定义和赋值
[cpp] view
plaincopy
QPixmap pix;
pix.load("images/typebutton.PNG");
QPixmappix("images/typebutton.PNG");
QPixmap pix = newQPixmap("images/typebutton.PNG");
3. QString
给QString赋值
[cpp] view
plaincopy
QString s = “sss”;
也可以:
[cpp] view
plaincopy
s.sprintf(“sss %d”, 2);
int转换成QString:
[cpp] view
plaincopy
int i=0;
//静态函数的方法
QString s = QString::number(i, 10);//10表示10进制,也可以不写,默认就是10进制
//非静态函数的方法
[cpp] view
plaincopy
QString::setNum ( ulong n, int base = 10 )
这两个函数同样使用于其他数字类型,如:uint, long, float, bouble等
(3) float、double转换成QString
同上面的函数相同,若想规定输出格式,则可通过参数设定。
[cpp] view
plaincopy
QString QString::number ( double n, char f= 'g', int prec = 6 )
setNum()也一样。f是表示输出的格式,prec是保留的小数位数,被截取的部分四舍五入。
4. QLineEdit
密码框的实现
QLineEdit,将echoMode属性设置成:Password
这样,输入的字符都是圆点显示
5. QDialog
动态定义、弹出对话框
qt对话框类是
[cpp] view
plaincopy
QDialog (QWidget * parent = 0, const char * name = 0, bool modal = FALSE, WFlags f = 0 )
modal:指是否模式对话框,也可以用setModal(bool)改变设置;
f:指窗口的样式。
如:
[cpp] view
plaincopy
DDishDetailForm *dishDetailForm = newDDishDetailForm( this->parentWidget(),
[cpp] view
plaincopy
<span style="white-space:pre"> </span> "dishdetailform",
[cpp] view
plaincopy
<span style="white-space:pre"> </span>TRUE,WStyle_Customize | WStyle_NoBorder);
定义了一个DDishDetailForm的弹出窗口,模式对话框,无边框。
弹出对话框,可以用:
[cpp] view
plaincopy
dishDetailForm->show();//显示的模式按照对应的为准
也可以用:
[cpp] view
plaincopy
dishDetailForm->exec();//则无论定义的modal设置的是什么,都按照模式对话框显示
使用QTDesigner导航生成的Form
虽然导航生成的Form也是继承自QDialog,但是它封装了构造函数和析构函数。但是它分别在两个函数里默认调用了init()和destroy()两个函数。
所以要想做什么初始化的操作就定义一个init()函数,写在里面。
要想在析构函数里做什么就定义一个destroy()函数,写在里面。
6. QComboBox
属性设置
设置下拉的高度,高度是可见的item行数:
[cpp] view
plaincopy
comboBox->setSizeLimit(5); //5行
如果不想使用滚动条,而是固定高度,横向扩展显示,则做下面设置即可:
[cpp] view
plaincopy
m_comboBox->listBox()->setColumnMode(QListBox::Variable);//默认即是
m_comboBox->listBox()->setVariableWidth(true);//使下拉列表的宽度可变
m_comboBox->listBox()->setRowMode(QListBox::FitToHeight);//行数和下拉的高度一致(不出现滚动条)
chartTypeTextLabel->setBuddy(chartTypeComboBox );
7. QDate、 QTime and QDateTime
QT提供了三个日期时间方面的类:QDate、QTime、QDateTime。使用方法都差不多,也非常方便。三个类都包含在头文件<qdatetime.h>中。
以QDateTime为例,说明获取当前时间的使用方法。
方法:
[cpp] view
plaincopy
currentDataTime()
因为是静态函数,所以不需要定义对象。返回的是QDateTime对象,若想转换成格式字符串,使用toString()函数即可。例子如下:
[cpp] view
plaincopy
QString ss =(QDateTime::currentDateTime()).toString("yyyy-MM-dd hh:mm:ss");
9. QProgressDialog
我们处理耗费时间的操作时经常会用到滚动条。直接上代码:
[cpp] view
plaincopy
#include <qapplication.h>
int NumRows = 10;
QProgressDialog progress(tr("Savingfile..."), tr("Cancel"), NumRows);
progress.setModal(true);
for (int row = 0; row < NumRows; ++row){
progress.setProgress(row);
qApp->processEvents();
if (progress.wasCanceled()) {
//dosomething
return;
}
}
说明:
NumRows,进度条的总步数,QProgressDialog会根据这个数自动算出每一步走多少长度。
QApplication::processEvents()用来处理任何repaint事件(如,接受用户点击Cancel按钮)(但是好像不写这句也可以)。
我们不调用show()函数,是因为QProgressDialog自己已经做了。如果这个过程变得极短,则dialog根本不会被显示。
以下是Qt的控件类的完整继承图:
FROM: http://blog.csdn.net/itcastcpp/article/details/39049255?utm_source=tuicool&utm_medium=referral
相关文章推荐
- qt控件的使用
- QT系列教程
- 使用Qt编写模块化插件式应用程序
- 使用VS2013_X68;PCL1.7.2;QT5;VTK6.2实现qt显示PCL
- Qt之文件操作
- Qt学习 之 Socket通信
- Qt QStirng 的使用
- 转载: Qt 学习之路 2归档
- Qt实战之开发CSDN下载助手 (3)(结束篇)
- Qt实战之开发CSDN下载助手 (2)
- Qt之界面美化输入框(使用QSS确实非同凡响)
- Qt开发小工具之gif转换器(使用QMovie截取每一帧为QImage,然后用QFile另存为图片文件)
- Qt实现16进制unicode转utf-8以及国际音标编码问题
- Qt实战之开发软件数据获取助手(eventFilter处理鼠标按下,event处理鼠标松开)
- Qt快速入门学习笔记(画图篇)
- QT 模拟鼠标点击的例子
- 解决 QT “调试器未设置”问题
- QT QSplitter随窗口自适应大小(Autosize)
- QT+2008VS资源文件的使用
- QT network