1.QToolBox抽屉效果
1)QToolBox构造一种列状的层叠抽屉效果的窗体;
2)QToolButton构造一种快速访问或选择项的通常用于工具条使用的按钮;
3)示例代码:(其中主窗体继承QToolBox)
QToolButton *toolBtn1 =new QToolButton;
toolBtn1->setText(tr("one"));
toolBtn1->setAutoRaise(true);
QToolButton *toolBtn2 =new QToolButton;
toolBtn2 ->setText(tr("two"));
toolBtn2 ->setAutoRaise(true);
QToolButton *toolBtn3 =new QToolButton;
toolBtn3 ->setText(tr("three"));
toolBtn3 ->setAutoRaise(true);
QToolButton *toolBtn4 =new QToolButton;
toolBtn4 ->setText(tr("four));
toolBtn4 ->setAutoRaise(true);
QGroupBox *groupBox1=new QGroupBox;
QVBoxLayout *layout1=new QVBoxLayout(groupBox1);
layout1->setAlignment(Qt::AlignHCenter);
layout1->addWidget(toolBtn1);
layout1->addWidget(toolBtn2);
QGroupBox *groupBox2=new QGroupBox;
QVBoxLayout *layout1=new QVBoxLayout(groupBox2);
layout1->setAlignment(Qt::AlignHCenter);
layout1->addWidget(toolBtn3);
layout1->addWidget(toolBtn4);
this->addItem((QWidget*)groupBox1,tr("first item"));
this->addItem((QWidget*)groupBox2,tr("second item"));
2.QProgressBar | QProgressDialog进度条效果
1)为了更有好的效果,通常在进行长时间的任务的时候,会理哟个进度条来显示时间,告诉用户任务的进展情况;
2)模态方式:需使用QApplication:processEvents()进行时间循环的刷新;
3)非模态:需要通过QTime定时设置进度条的数值;
4)模态是指在打开之后,程序被占用,不能够进行其他操作,而非模态则可以进行其他操作;
5)format可以格式化进度条显示的格式,%p%(完成百分比)、%v(当前进度值)、%m(总的步进值);
6)示例代码:
progressBar->setRange(0, 100);
for (int i = 1; i < 100 + 1; i++)
{
progressBar->setValue(i);
}
QProgressDialog *progressDialog=new QProgressDialog(this);
progressDialog->setWindowModality(Qt::WindowModal);
progressDialog->setWindowTitle(tr("Please Wait"));
progressDialog->setCancelButtonText(tr("Cancel"));
progressDialog->setRange(0, 100 );
for (int i = 1; i < 100 + 1; i++)
{
progressDialog->setValue(i);
if (progressDialog->wasCanceled())
return;
}
3.QOalette调色板效果
1)相当于控件的调色板,可以通过它进行颜色外观的设置;
2)QPalette::Active 获得焦点的状态;
3)QPalette::Inactive 没有获得焦点的状态;
4)QPalette::Disable 不可用状态;
5)主要的设置颜色函数用setColor()和setBrush()两个;
6)示例代码:
QPalette p = palette();
p.setColor(QPalette::Window, Qt::blue);
setPalette(p);
4.QTime时间控件
1)利用currentTime()获取当前的系统时间;
2)利用toString()来将时间格式化显示;
3)代码示例:
QTime time = QTime::currentTime();
QString text = time.toString("hh:mm:ss");
5.QSplashScreen程序启动画面效果
1)通常用于大型程序的加载时间过长而进行的友好性设置,或者是展示软件信息;
2)示例代码:
QSplashScreen splash(QPixmap);
splash.show();
a.processEvents();
MainWindow w;
w.show();
splash.finish(&w);
6.折叠窗口与不规则窗口
1)折叠窗口首先利用setSizeConstraint(QLayout::SetFixedSize)来设置窗口的固定大小,不能够通过拖拽来改变大小;
2)实现方式:将两个窗体利用布局放在一起,其中一个隐藏和显示交替;
3)不规则窗体是利用遮罩setMask()来实现的,力求更良好的感官和界面展示。