In Firefox/Chrome/Internetexplorer/Safari/Oper Pop-ups aus dem Combobox als Inhalt erweitern, sehen Firefox Bild:"QComboBox Pop-up" erweitert und QtWebKit
QComboBox
pop -up erweitert den Inhalt nicht. Pop-ups sind durch die Größe von QComboBox
begrenzt, siehe QWebView Bild:
So implementiert ich die 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();
}
Gibt es eine Möglichkeit die QComboBox::showPopup
von QWebViews
(QtWebkit) ändern (neu implementieren)?
Qt-BUG (Vorschlag):https://bugreports.qt.io/browse/QTBUG-35771
Welchen Stil verwenden Sie? Wie das Popup angezeigt wird und ob die passende Ansicht die gleiche Größe der Combobox hat oder größer sein darf, hängt vollständig vom verwendeten Stil ab. – peppe
... was Ihnen auch sagt, wie Sie es beheben können: siehe 'QComboBox :: showPopup' Code und verwenden Sie einen QProxyStyle, der die richtigen Aufrufe umleitet. Natürlich ist all dies unter der Annahme, dass QWebView eine QComboBox verwendet, und nicht etwas, das * ähnelt * a QComboBox ... – peppe
Waren Sie schon in der HTML-Datei zugreifen, die Sie zeigt diese 'ComboBox' erwarten, oder Sie haben keine Kontrolle für was wird von der 'QWebView' gezeigt? Weil ich eine ComboBox implementiert, die Ihre benutzerdefinierten verwendet 'QComboBox' in eine' QWebView' aber nur funktionieren, wenn die HTML-Seite einen bestimmten Code verwenden, nicht die ''