我想限制与QInputDialog
,并且只有getInt
,getDouble
,getItem
和getString
。只有getSring
可以采用像“a,b,c,d,e,f”这样的字符。然而,是否有某种方式来限制getString
仅采取0~9||"a-f"
如何QInputDialog的输入十六进制数字内容:: gettext的
0
A
回答
1
QSpinBox
是面向于来自客户端的输入得到的数字窗口小部件,这具有指示其中数值基础它希望使用,在这种情况下,需要该方法setDisplayIntegerBase()
使用底座16
所以,如果你看一下getInt()
有一个内部QSpinBox
那么只有属性应该被启用的方法,有没有直接的方法来获得QSpinBox
,但我们可以用findchild()
方法。
#include <QInputDialog>
#include <QSpinBox>
static QString getHex(QWidget *parent,
const QString &title,
const QString &label,
int value = 0,
int min = -2147483647,
int max = 2147483647,
int step = 1,
bool *ok = Q_NULLPTR,
Qt::WindowFlags flags = Qt::WindowFlags()){
QInputDialog dialog(parent, flags);
dialog.setWindowTitle(title);
dialog.setLabelText(label);
dialog.setIntRange(min, max);
dialog.setIntValue(value);
dialog.setIntStep(step);
QSpinBox *spinbox = dialog.findChild<QSpinBox*>();
spinbox->setDisplayIntegerBase(16);
bool ret = dialog.exec() == QDialog::Accepted;
if (ok)
*ok = ret;
return spinbox->text();
}
例子:
#include <QApplication>
#include <QDebug>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
qDebug()<<getHex(Q_NULLPTR, "title", "label", 0x1d, 0);
return 0;
}
截图:
+0
这只是我正在寻找的方式。谢谢你给我的所有帮助。 –
相关问题
- 1. 为十六进制内容
- 2. QValidator十六进制输入
- 3. 输入十六进制并用C++读取十六进制
- 4. 如何将输入存储为十六进制数字?
- 5. C#功能:输入= INT十进制值,输出=字节的十六进制值
- 6. 将十六进制转换为十进制的方法 - 输入非十六进制数时程序不正确
- 7. 如何连接十六进制数字?
- 8. 如何加入的十六进制值
- 9. jQuery UI - 用于输入数字为十六进制的插件?
- 10. 十六进制字符串到十六进制整数
- 11. 如何转换十六进制字符串为十六进制数
- 12. 用于大数字的十进制到十六进制的Python
- 13. 使用无符号字符数组输入十六进制数
- 14. 十六进制值的字符串格式为十六进制数字排序
- 15. openssl以十六进制输入bash
- 16. 如何转换OCaml中十六进制,十进制,十进制和二进制数之间的数字?
- 17. 选择一个十六进制附近的十六进制数
- 18. 将输入解释为十六进制数字
- 19. 如何十六进制转换为十六进制
- 20. 将十进制转换为十六进制和十六进制
- 21. 如何将十六进制字符串转换为十进制?
- 22. 如何仅为十六进制输入制作UIKeyboardType?
- 23. C++输入字节和输出十六进制
- 24. 需要检查输入字符串中的十六进制值
- 25. 十六进制字符串作为gdb中scanf的输入
- 26. 如何将byte []数组的内容从十六进制转换为十进制数?
- 27. 转换十六进制字符串十六进制值
- 28. 将字符串转换为十六进制到十六进制
- 29. 插入十六进制值
- 30. 如何插入十六进制/二进制?成mysql数据库?
现在我知道我的自定义对话框,并使用正则表达式来限制内容。 –
你想返回一个字符串或数字吗? – eyllanesc