我的答案的一半在這裏找到:How to prevent QSpinBox from automatically highlighting contents如何完全禁用qspinboxes的值突出顯示?
但是,該程序仍然允許鼠標或觸摸拖動來突出顯示spinboxes的值。因爲我的應用程序是嵌入式設備接口,所以我絕對不需要突出顯示。
如何完全禁用任何類型的突出顯示,同時仍保持旋轉箱向上/向下按鈕的功能。
我的答案的一半在這裏找到:How to prevent QSpinBox from automatically highlighting contents如何完全禁用qspinboxes的值突出顯示?
但是,該程序仍然允許鼠標或觸摸拖動來突出顯示spinboxes的值。因爲我的應用程序是嵌入式設備接口,所以我絕對不需要突出顯示。
如何完全禁用任何類型的突出顯示,同時仍保持旋轉箱向上/向下按鈕的功能。
我們最終做的是將一對信號連接到textEditDeselect插槽。
foreach(QSpinBox* sb, ui.main->findChildren<QSpinBox*>())
{
sb->findChildren<QLineEdit*>().at(0)->setReadOnly(true);
connect(sb,SIGNAL(valueChanged(int)),this,SLOT(textEditDeselect()), Qt::QueuedConnection);
connect(sb->findChild<QLineEdit*>(), SIGNAL(cursorPositionChanged(int,int)),this, SLOT(textEditDeselect()),Qt::QueuedConnection);
}
最簡單的解決方案是更改Qt Designer中的調色板。
選擇qspinbox,單擊「更改調色板」並選擇HighlightedText選擇黑色。這將禁用藍色背景,至少在Windows上。
'spinBox-> setReadOnly(true)'工作嗎? –
不,它仍然突出顯示,但現在上下按鈕不再起作用。 – pksublime