我想限制與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. 如何解碼十六進制內容?
- 3. QValidator十六進制輸入
- 4. 如何比較十六進制數字與shell中的十六進制數字?
- 5. 如何在十六進制字符數組中插入十六進制值
- 6. 用戶輸入十六進制到十六進制陣列
- 7. 輸入十六進制並用C++讀取十六進制
- 8. 如何將輸入存儲爲十六進制數字?
- 9. 在C +/C++中查找十六進制範圍內的十六進制數字
- 10. C#功能:輸入= INT十進制值,輸出=字節的十六進制值
- 11. 輸入十六進制到的argv [1]
- 12. 十六進制的輸入掩碼
- 13. 如何獲取十六進制輸入並將其轉換爲十進制?
- 14. 將十六進制轉換爲十進制的方法 - 輸入非十六進制數時程序不正確
- 15. 如何連接十六進制數字?
- 16. 如何加入的十六進制值
- 17. jQuery UI - 用於輸入數字爲十六進制的插件?
- 18. 十六進制字符串到十六進制整數
- 19. 如何將十六進制字符串轉換爲十六進制數
- 20. 如何轉換十六進制字符串爲十六進制數
- 21. 用於大數字的十進制到十六進制的Python
- 22. 使用無符號字符數組輸入十六進制數
- 23. 十六進制值的字符串格式爲十六進制數字排序
- 24. 將輸入視爲十六進制值
- 25. Android Java CRC十六進制輸入
- 26. openssl以十六進制輸入bash
- 27. 十六進制串&十六進制
- 28. C++將十六進制字符串轉換爲十六進制char *十六進制數字
- 29. 如何將十六進制字符串轉換爲十六進制字節?
- 30. 如何轉換OCaml中十六進制,十進制,十進制和二進制數之間的數字?
現在我知道我的自定義對話框,並使用正則表達式來限制內容。 –
你想返回一個字符串或數字嗎? – eyllanesc