Có thể đặt kiểu mục đã chọn (bảng kiểu Qt) của danh sách thả xuống QComboBox không?Danh sách thả xuống QComboBox - thiết lập kiểu mục đã chọn
Trả lời
Nếu bạn muốn mục được chọn xuất hiện khác khi hộp kết hợp hiển thị phần tử của nó (ví dụ: trong trạng thái "thả xuống"), bạn có thể thay đổi màu cho Highlight và HighlightedText trong bảng màu hoặc kiểu khu vực nội QAbstractItemView
#include <QtGui>
int main(int argc, char **argv) {
QApplication app(argc, argv);
QComboBox cb;
cb.addItem("Item 1");
cb.addItem("Item 2");
cb.addItem("Item 3");
cb.show();
QPalette p = cb.palette();
p.setColor(QPalette::HighlightedText, QColor(Qt::red));
p.setColor(QPalette::Highlight, QColor(Qt::green));
cb.setPalette(p);
// OR ...
// cb.setStyleSheet("QComboBox QAbstractItemView { "
// "selection-background-color: green; "
// "selection-color: red; }");
return app.exec();
}
Nếu bạn chỉ có nghĩa là phong cách của các yếu tố trong "sụp đổ" nhà nước, tôi muốn có một cái nhìn tại "Customizing QComboBox" của Sheets tham khảo Qt style cho ví dụ về những gì bạn đang cố gắng làm.
Giải pháp là để
- tạo ra một đối tượng ListView
- thiết stylesheet của nó
- sử dụng nó như quan điểm của các ComboBox
Dưới đây là làm thế nào:
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QMainWindow * mainWindow = new QMainWindow();
QComboBox * combo = new QComboBox(mainWindow);
QListView * listView = new QListView(combo);
combo->addItem("foo");
combo->addItem("bar");
combo->addItem("foobar");
combo->addItem("fooooo");
listView->setStyleSheet("QListView::item { \
border-bottom: 5px solid white; margin:3px; } \
QListView::item:selected { \
border-bottom: 5px solid black; margin:3px; \
color: black; \
} \
");
combo->setView(listView);
mainWindow->show();
app.exec();
return 0;
}
Ghi chú: Tôi nghĩ rằng, according to the Qt docs áp dụng kiểu này cũng sẽ hoạt động ... nhưng không.
QComboBox QAbstractItemView::item {
border-bottom: 5px solid white; margin:3px;
}
QComboBox QAbstractItemView::item:selected {
border-bottom: 5px solid black; margin:3px;
}
Cảm ơn! Nhưng một câu hỏi nữa ... Làm thế nào để thoát khỏi khung lựa chọn mỏng? Xem ví dụ: http://vlasovsoft.net/images/1.png –
Giải pháp sự kiện tốt hơn được hiển thị tại đây http://stackoverflow.com/questions/13308341/qcombobox-abstractitemviewitem?rq=1 – bkausbk
- 1. Danh sách thả xuống MVC3 không chọn mục đã chọn
- 2. MVC3: Đặt danh sách thả xuống Giá trị đã chọn
- 3. Điền một danh sách thả xuống dựa trên việc chọn danh sách thả xuống khác
- 4. Danh sách thả xuống chọn HTML
- 5. Điền vào danh sách thả xuống khi lựa chọn một danh sách thả xuống khác
- 6. Cách xóa mục đã chọn khỏi danh sách thả xuống (Sử dụng Jquery)
- 7. Tôi có thể lập trình thiết lập vị trí danh sách thả xuống của ComboBox không?
- 8. Danh sách thả xuống Combobox
- 9. Làm thế nào để thiết lập một mục danh sách thả xuống như được chọn trong ASP.NET?
- 10. Thêm mục chọn trống vào danh sách trong danh sách thả xuống
- 11. Danh sách thả xuống thả xuống Nguồn dữ liệu
- 12. Đặt mục thả xuống được chọn MVC
- 13. Thay đổi kiểu dáng trên danh sách thả xuống ASP
- 14. Cách tạo kiểu danh sách thả xuống asp.net
- 15. MVC 3 Danh sách thả xuống mất giá trị đã chọn với ViewBag
- 16. Chọn nhiều giá trị từ danh sách thả xuống
- 17. HTML Chọn danh sách thả xuống có nhiều màu
- 18. Danh sách như chọn thả xuống với jQuery?
- 19. Chọn (danh sách thả xuống) với plugin jcf
- 20. Lỗi trong danh sách thả xuống
- 21. Redirect tự động khi lựa chọn một mục từ một chọn danh sách thả xuống
- 22. Làm thế nào bạn có thể thiết lập mục đã chọn trong danh sách thả xuống ASP.NET thông qua văn bản hiển thị?
- 23. Lấy giá trị danh sách thả xuống đã chọn từ một FormCollection trong MVC
- 24. Chọn danh sách thả xuống thả xuống với mảng bằng cách sử dụng jQuery
- 25. mẫu khác nhau cho các mục trong danh sách thả xuống ComboBox và cho chọn mục
- 26. ASP.NET - Kiểm soát danh sách thả xuống postback lập trình
- 27. cách đăng lại trên danh sách thả xuống đã thay đổi trong mục mvc4
- 28. cách lấy chỉ mục đã chọn thả xuống
- 29. Danh sách thả xuống đa lựa chọn trong ASP.NET
- 30. Vô hiệu hóa tùy chọn danh sách thả xuống KendoUI
Cảm ơn bạn đã trả lời! Tôi chỉ đang cố thay đổi lựa chọn mục thả xuống của combobox. Tôi không muốn sử dụng màu nền để chọn. Tôi muốn sử dụng đường viền dưới cùng. Tôi đã thực hiện việc này với QMenu: QMenu :: item { border-bottom: 5px solid white; lề: 3px; } QMenu :: mục :: được chọn { border-bottom: 5px solid black; lề: 3px; } và muốn làm điều đó với mục thả xuống hộp combo ... –