要使用 aQSpinBox来输入和显示十六进制数字,只需将其设置displayIntegerBase为 16。但是,我找不到将显示设置为大写的属性或方法(例如,1A而不是1a)。
我知道我可以覆盖textFromValue()方法来做到这一点,但感觉就像一个相当正常的用例。一定有更简单的方法来做到这一点,对吧?
我正在使用 Qt 5.12。
您可以通过强制大写设定资本的你spinBox的字体QFont::AllUppercase
QFont font = ui->spinBox->font();
font.setCapitalization(QFont::AllUppercase);
ui->spinBox->setFont(font);
Run Code Online (Sandbox Code Playgroud)
编辑:我准备了一个小例子来展示行为
#include <QWidget>
#include <QApplication>
#include <QHBoxLayout>
#include <QSpinBox>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QWidget *w = new QWidget();
QLayout* layout = new QHBoxLayout(w);
QSpinBox* spinBox = new QSpinBox(w);
spinBox->setRange(0, 0xFF);
spinBox->setDisplayIntegerBase(16);
QFont font = spinBox->font();
font.setCapitalization(QFont::AllUppercase);
spinBox->setFont(font);
QSpinBox* spinBox2 = new QSpinBox(w);
spinBox2->setRange(0, 0xFF);
spinBox2->setDisplayIntegerBase(16);
spinBox->setValue(0x1a);
spinBox2->setValue(0x1a);
layout->addWidget(spinBox);
layout->addWidget(spinBox2);
w->show();
return a.exec();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
530 次 |
| 最近记录: |