В Firefox/Chrome/InternetExplorer/Safari/Opera всплывающих окнах от комбобокса расширить как содержание, см Firefox изображения:"QComboBox Всплывающее" расширяется и QtWebKit
QComboBox
поп -up не расширяет содержимое. всплывающих окон ограничены размером QComboBox
см QWebView картины:
Я Реализована QComboBox :: showPopup:
void newQComboBox::showPopup() {
int width = this->width();
this->view()->setTextElideMode(Qt::ElideNone);
const int iconSize = this->iconSize().width();
const QFontMetrics fontMetrics = this->fontMetrics();
const int j = this->count();
for(int i=0; i < j; ++i) {
const int textWidth = fontMetrics.width(this->itemText(i) + "WWW");
if (this->itemIcon(i).isNull()) {
width = qMax(width, textWidth);
} else {
width = qMax(width, textWidth + iconSize);
}
}
QStyleOptionComboBox opt;
this->initStyleOption(&opt);
QSize size(width, 0);
size = this->style()->sizeFromContents(QStyle::CT_ComboBox, &opt, size, this);
this->view()->setFixedWidth(width);
QComboBox::showPopup();
}
Есть ли способ изменить (переопределить) QComboBox::showPopup
от QWebViews
(QtWebkit)?
Qt-BUG (предложение):https://bugreports.qt.io/browse/QTBUG-35771
Какой стиль вы используете? Как показано всплывающее окно, и если совпадающий вид имеет одинаковый размер выпадающего списка или ему разрешено быть больше, он полностью зависит от используемого стиля. – peppe
... который также сообщает вам, как его исправить: см. Код 'QComboBox :: showPopup' и используйте QProxyStyle, отменяя правильные вызовы. Конечно, все это предполагает, что QWebView использует QComboBox, а не что-то, что * напоминает * QComboBox ... – peppe
Имеете ли вы доступ к HTML-файлу, который вы ожидаете отображать этот «ComboBox», или у вас нет контроля за то, что показывает «QWebView»? Поскольку я реализовал ComboBox, который использует ваш пользовательский 'QComboBox' в' QWebView', но он работает, только если HTML-страница использует определенный код, а не код '