相关文章推荐
If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below.

Welcome to Qt Centre .

Qt Centre is a community site devoted to programming in C++ using the Qt framework . Over 90 percent of questions asked here gets answered. If you are looking for information about Qt related issue — register and post your question.

You are currently viewing our boards as a guest which gives you limited access to view most discussions and access our other features. By joining our free community you will have access to post topics, communicate privately with other members (PM), respond to polls, upload content and access many other special features. Registration is fast, simple and absolutely free so please, join our community today !

If you have any problems with the registration process or your account login, please contact us .

I have QStackedwidget in my application, In the first page, i have tablewidget.
i want to set stylesheet for Qtablewidget headerview.
but i can't able to set stylesheet.
I have tried following ways,
this->setStyleSheet(
" QHeaderView::section {"
" background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,"
" stop:0 #616161, stop: 0.5 #505050,"
" stop: 0.6 #434343, stop:1 #656565);"
" color: white;"
" padding-left: 4px;"
" border: 1px solid #6c6c6c;"
"}");
this->setStyleSheet( QStackedWidget QWidget#page { "
" QHeaderView::section {"
" background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,"
" stop:0 #616161, stop: 0.5 #505050,"
" stop: 0.6 #434343, stop:1 #656565);"
" color: white;"
" padding-left: 4px;"
" border: 1px solid #6c6c6c;"
"}");
but it is not working.
  1. this->setStyleSheet( QStackedWidget QWidget#page { " //<<<<<<<< Remove '{'
  2. " QHeaderView::section {"
  3. " background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,"
  4. " stop:0 #616161, stop: 0.5 #505050,"
  5. " stop: 0.6 #434343, stop:1 #656565);"
  6. " color: white;"
  7. " padding-left: 4px;"
  8. " border: 1px solid #6c6c6c;"
  9. "}" //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Remove '}'
  10. "}");
this->setStyleSheet( QStackedWidget QWidget#page { " //<<<<<<<< Remove '{'
 " QHeaderView::section {"
 " background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,"
 " stop:0 #616161, stop: 0.5 #505050,"
 " stop: 0.6 #434343, stop:1 #656565);"
 " color: white;"
 " padding-left: 4px;"
 " border: 1px solid #6c6c6c;"
 "}" //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Remove '}'
 "}");
To copy to clipboard, switch view to plain text mode
How are you creating the Ui
1. If you are using the designer, then make sure the QWidget's name is correct and the stylesheet is applied to a containing widget.
2. If you are creatig the using code, even then make sure the QWidget's name is correct.
The folloing code works on my windows
Qt Code: Switch view
  1. #include <QtGui>
  2. #include <QApplication>
  3.  
  4. QWidget * createPage(const QString & name)
  5. {
  6. QTableWidget * tableWidget = new QTableWidget;
  7. tableWidget->setObjectName(name);
  8. tableWidget->setRowCount(10);
  9. tableWidget->setColumnCount(10);
  10. return tableWidget;
  11. }
  12.  
  13. int main(int argc, char *argv[])
  14. {
  15. QApplication app(argc, argv);
  16.  
  17. QStackedWidget stackedWidget;
  18. stackedWidget.showMaximized();
  19.  
  20. stackedWidget.addWidget(createPage("Page1"));
  21. stackedWidget.addWidget(createPage("Page2"));
  22.  
  23. stackedWidget.setStyleSheet(
  24. "QStackedWidget QTableWidget#Page1 QHeaderView::section {"
  25. " background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,"
  26. " stop:0 #616161, stop: 0.5 #505050,"
  27. " stop: 0.6 #434343, stop:1 #656565);"
  28. " color: white;"
  29. " padding-left: 4px;"
  30. " border: 1px solid #6c6c6c;"
  31. "}"
  32. "QStackedWidget QTableWidget#Page2 QHeaderView::section {"
  33. " background-color: qlineargradient(x1:0, y1:0, x2:1, y2:1,"
  34. " stop:0 #red, stop: 0.5 #green,"
  35. " stop: 0.6 #green, stop:1 #pink);"
  36. " color: white;"
  37. " padding-left: 4px;"
  38. " border: 1px solid #bule;"
  39. "}");
  40.  
  41. stackedWidget.setCurrentIndex(0);
  42. // stackedWidget.setCurrentIndex(1);
  43.  
  44. return app.exec();
  45. }
#include <QtGui>
#include <QApplication>
QWidget * createPage(const QString & name)
    QTableWidget * tableWidget = new QTableWidget;
    tableWidget->setObjectName(name);
    tableWidget->setRowCount(10);
    tableWidget->setColumnCount(10);
    return tableWidget;
int main(int argc, char *argv[])
    QApplication app(argc, argv);
    QStackedWidget stackedWidget;
    stackedWidget.showMaximized();
    stackedWidget.addWidget(createPage("Page1"));
    stackedWidget.addWidget(createPage("Page2"));
    stackedWidget.setStyleSheet(
     "QStackedWidget QTableWidget#Page1 QHeaderView::section {"
     " background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,"
     " stop:0 #616161, stop: 0.5 #505050,"
     " stop: 0.6 #434343, stop:1 #656565);"
     " color: white;"
     " padding-left: 4px;"
     " border: 1px solid #6c6c6c;"
     "QStackedWidget QTableWidget#Page2 QHeaderView::section {"
     " background-color: qlineargradient(x1:0, y1:0, x2:1, y2:1,"
     " stop:0 #red, stop: 0.5 #green,"
     " stop: 0.6 #green, stop:1 #pink);"
     " color: white;"
     " padding-left: 4px;"
     " border: 1px solid #bule;"
     "}");
    stackedWidget.setCurrentIndex(0);
//    stackedWidget.setCurrentIndex(1);
    return app.exec();
To copy to clipboard, switch view to plain text mode 
If still it does not work, you better post a small compilable code with the problem
 
推荐文章