2012-02-28 28 views
3

在以下代碼中有兩個樣式表:problemStylesheet和okStylesheet。 一切工作正常,當我使用okStylesheet爲QTableWidget。標籤正在滾動。 問題是如果我使用問題樣式表,標籤不會滾動。什麼會導致這個問題?我試圖找到解決方案,但找不到任何可能有用的信息。帶樣式表的QTableWidget不滾動項目

Qt 4.8.0,Mac OS X Lion。

示例代碼:

#include <QtGui> 

int main(int argc, char *argv[]) 
{ 
    QApplication app(argc, argv); 

    QWidget *baseWidget = new QWidget; 

    QTableWidget *tableWidget = new QTableWidget(baseWidget); 
    tableWidget->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); 
    tableWidget->setColumnCount(1); 

    tableWidget->horizontalHeader()->setVisible(false); 
    tableWidget->verticalHeader()->setVisible(false); 

    tableWidget->horizontalHeader()->setStretchLastSection(true); 
    tableWidget->verticalHeader()->setDefaultSectionSize(52); 

    tableWidget->setShowGrid(false); 

    tableWidget->setSelectionMode(QAbstractItemView::SingleSelection); 
    tableWidget->setSelectionBehavior(QAbstractItemView::SelectRows); 

    QString problemStylesheet = "QTableWidget { background-color: green; } QTableWidget::item { border: 1px solid #000; }"; 
    QString okStylesheet = "QTableWidget { } QTableWidget::item { border: 1px solid #000; }"; 

    tableWidget->setStyleSheet(problemStylesheet); 

    tableWidget->setRowCount(20); 
    for (int i = 0; i < 20; ++i) { 
     QLabel *label = new QLabel(QString("").setNum(i), tableWidget); 
     label->setAlignment(Qt::AlignHCenter | Qt::AlignVCenter); 
     tableWidget->setCellWidget(i, 0, label); 
    } 

    QVBoxLayout *verticalLayout = new QVBoxLayout(); 
    verticalLayout->setMargin(0); 
    verticalLayout->setSpacing(0); 
    verticalLayout->setContentsMargins(0, 0, 0, 0); 

    baseWidget->setLayout(verticalLayout); 

    verticalLayout->addWidget(tableWidget); 

    baseWidget->show(); 

    return app.exec(); 
} 

UPDATE:好像一切都是在Linux和Windows確定。所以這個問題只出現在Mac OS上。

+0

在Linux(Ubuntu的11.10)運行此有行爲使用兩個樣式表之間沒有明顯的差異,避免滾動的看法。除了一個是綠色的而另一個不是綠色的,它看起來很好。 「標籤滾動」是什麼意思? – Chris 2012-02-28 17:05:25

+0

@Chris:我做了一個截圖(http://dl.dropbox.com/u/8720074/Screen%20Shot%202012-02-28%20at%2023.48.28.png)。如您所見,垂直滾動條位於底部,但我們看到標籤0,1,2,3,而不是標籤16,17,18,19。 – 2012-02-28 17:53:28

+2

剛剛向QT提交了一個問題:https://bugreports.qt -project.org/browse/QTBUG-25​​180 – CsTamas 2012-04-05 09:00:51

回答

0

根據我的經驗,當我在MAC上運行應用程序時,我經常從NSScrollWheel獲得調試消息。

我會建議使用QT當MAC的

+0

hm,回答「如果你不能做某事,根本就不這樣做」並不能真正回答這個問題。 – Wh1T3h4Ck5 2012-10-09 20:31:08