本文介绍Qt杂项功能实现。
1.隐藏鼠标指针
1)整个应用程序都不显示鼠标指针
可在“QApplication a(argc, argv);”之后添加:
QApplication::setOverrideCursor(Qt::BlankCursor);
这在带触摸屏的应用中非常有用。
2)某个窗口不显示鼠标指针
可在窗口的构造函数中调用:
QWidget::setCursor(QCursor(Qt::BlankCursor));
3)某个控件不显示鼠标指针
如某个label显示范围内不显示鼠标指针:
ui->lbTest->setCursor(Qt::BlankCursor);
2.设置控件背景颜色
1)设置Button背景颜色
参考代码如下:
ui->pushButton->setPalette(QPalette(Qt::red));
//or ui->pushButton->setPalette(QPalette(QColor(255, 0, 0)));
2)设置Label背景颜色
参考代码如下:
ui->label->setPalette(QPalette(Qt::green));
//or ui->label->setPalette(QPalette(QColor(255, 0, 0)));
ui->label->setAutoFillBackground(true);
3.设置颜色(通用)
设置颜色可以通过调色板(pallette)进行,参考代码如下(以Button字体颜色为例):
QPalette palette;
palette.setColor(QPalette::ButtonText, Qt::blue);
ui->pushButton->setPalette(palette);
setColor()函数调色板类型可查帮助文档。
4.设置控件背景图片
1)设置Button背景图片
参考代码如下:
QIcon iconStart(":/icon/Start");
ui->btnStart->setIconSize(iconStart.availableSizes().first());
ui->btnStart->setIcon(iconStart);
2)设置Label背景图片
参考代码如下:
QPixmap pixmapTest(":/icon/Test");
ui->lbTest->setPixmap(pixmapTest);
5.为应用程序设置图标
1)将一个图标文件(.ico格式)复制到项目源程序目录下
2)项目配置文件里添加(AppIcon为图标名称):
RC_ICONS = AppIcon.ico
6.使用虚拟键盘
1)设置环境变量
在main函数“QApplication a(argc, argv);”前加入下代码:
qputenv("QT_IM_MODULE", QByteArray("qtvirtualkeyboard"));
2)焦点设置
根据情况设置ui中的可编辑控件的“focusPolicy”,如设置为“StrongFocus”。
7.设置字体
以lineEdit控件为例,其他类似。参考代码如下:
ui->lineEdit->setText("ABC");
QFont font = ui->lineEdit->font();
font.setPointSize(12);
font.setBold(true);
font.setItalic(true);
font.setFamily("Ubuntu");
font.setWeight(40); //Font line width
ui->lineEdit->setFont(font);
8.设置背景提示文字
有时想实现如下效果:
可在ui中设置“placeholderText”中设置,也可以采用代码设置,参考代码如下:
ui->lineEdit->setPlaceholderText("ABC");
9.设置组合键
如想实现按下Ctrl+Alt+A组合键,然后实现某个功能,参考代码如下:
void MainWindow::keyPressEvent(QKeyEvent *event)
{
if ((event->modifiers() == (Qt::ControlModifier | Qt::AltModifier)) && (event->key() == Qt::Key_A)) {
close();
event->accept();
}
QMainWindow::keyPressEvent(event);
}
注意严格按Ctrl+Alt+A的按键顺序,同时注意设置的组合键是否和系统组合键冲突。
10.退出应用程序
在多界面程序中,在某个嵌套的子界面(比如维护界面)想要退出整个应用程序,参考代码如下:
QApplication::quit();
11.Windows环境下程序自启动
修改注册表,在注册表项:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
“新建”->“字符串值(S)”,分别设置“数值名称(N)”,“数值数据(V)”。
1)数值名称(N):应用程序名称
2)数值数据(V):应用程序路径
12.引入其它库
引入其它库,需要在“.pro”文件中包含头文件及指定库,设置如下:
INCLUDEPATH += /usr/include/libusb-1.0 \
/usr/include/xxx
LIBS += -ljpeg -lusb-1.0
待后续补充。
总结,本文介绍了Qt杂项功能实现。