(使用Qt 4.8.4)QLineEdit的自定義框架
我想爲QLineEdit創建一個自定義框架。已在Photoshop中創建一個與我有它在三個圖像(因爲它需要在寬度伸展):
- 左側圖像
- 中心streetchable圖像
- 右側圖像
我想找到一種方法來取代QTLineEdit的外觀,同時仍然保留編輯視覺效果的外觀。這只是我期待的框架而已。
我該怎麼辦?如果我重寫paintEvent,則不會顯示任何內容,甚至不會顯示我輸入的內容,甚至不會顯示閃爍的光標。
(使用Qt 4.8.4)QLineEdit的自定義框架
我想爲QLineEdit創建一個自定義框架。已在Photoshop中創建一個與我有它在三個圖像(因爲它需要在寬度伸展):
我想找到一種方法來取代QTLineEdit的外觀,同時仍然保留編輯視覺效果的外觀。這只是我期待的框架而已。
我該怎麼辦?如果我重寫paintEvent,則不會顯示任何內容,甚至不會顯示我輸入的內容,甚至不會顯示閃爍的光標。
好的。我想我把它釘:
我設置爲我QLineEdit的對象以下樣式:
this->ui->myLineEdit->setStyleSheet("border-image: url(input_bg.png) 5 5 5 5 stretch stretch;border-width: 5px 5px 5px 5px;");
我使用的「5」,因爲圖像在我使用的,每一個角落的5x5切割封裝面積由於內部的漸變,它不會優雅地伸展。
這確保了當編輯控件的大小可變時,邊框將很好地工作。
你試過:
CustomLineEdit
創建自己的類CustomLineEdit
從QLineEdit
繼承,CustomLineEdit
/析構函數,paintEvent()
自己,paintEvent()
根據需要放置所有圖片。是的,但我需要應用標準塗料行爲(減去框架)。這並不容易實現,部分複製QLineEdit的東西對於所有瘋狂的d指針Q_D實現來說有點棘手。 – JasonGenX
你有看過Qt樣式表嗎?似乎你可以做到這一點(http://qt-project.org/doc/qt-4.8/stylesheet-examples.html#customizing-qlineedit/http://qt-project.org/doc/qt-4.8 /stylesheet-customizing.html#the-box-model/http://qt-project.org/doc/qt-4.8/stylesheet-reference.html#border-image-prop) – Mat
我會嘗試使用邊框圖片。謝謝。如果這樣做 - 我會請你在答覆中提到,以便我可以向你提供答覆。 – JasonGenX