Home > other >  QTableWidget and QPainter cannot coexist
QTableWidget and QPainter cannot coexist

Time:11-19

Compiled a program that requires QTableWidget and QPainter, the following problems: 1. If only QTableWidget or QPainter can work normally, but if the two are combined with, displayed a QTableWidget only, cannot show QPainter, the mainwindow. Vlayout - in the CPP & gt; AddWidget (table); Commented out, display graphics, right below:  window. The open (' http://www.qtcn.org/bbs/attachment/Mon_1111/17_108454_705c52fb902b9a0.png? 4 ');" Style="Max - width: 700 px; Max - height: 700 px;" onl oad="if (is_ie6 & amp; & This. OffsetWidth> 700) this. Width=700;"> The mainwindow. Vlayout of CPP - & gt; AddWidget (table); Annotation to open, then can only display table, can't show the painter, the diagram below:  2. Ask how to do is show QTableWidget and can show QPainter properly, thank you! -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - main. CPP -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- int main (int arg c, char * argv []) {QApplication a (arg c, argv); MainWindow * MainWindow=new MainWindow. Mainwindow - & gt; Show (); Return a.e xec (); } -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - mainwindow. H -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - # # ifndef MAINWINDOW_H # define MAINWINDOW_H # include & lt; QtGui> The class QPushButton; The class QTableWidget; The class QLabel; The class QLineEdit; The class RenderArea; The class MainWindow: public QMainWindow {Q_OBJECTpublic: MainWindow (); ~ MainWindow (); Private: nvlabel QLabel * and * nlooplabel; Nvlineedit QLineEdit * and * nlooplineedit; QTableWidget * table, * abc_table; OkButton closeButton fitButton QPushButton * and * and * and * paint_Button; Tophlayout QHBoxLayout * and * hlo; QVBoxLayout * vlayout; QWidget * window; RenderArea * RenderArea; Private: void initWidgets (); Private slots: void create_table (); }; # endif//MAINWINDOW_H -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - mainwindow. CPP -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- # include "mainwindow. H" # include "render. H # include" & lt; QtGui> MainWindow: : MainWindow () {initWidgets (); {}} MainWindow: : ~ MainWindow () void MainWindow: : initWidgets () {//form table=new QTableWidget;//button QString a1=tr (" return to ABC "); FitButton=new QPushButton (a1); QString a2=tr (" shut off "); CloseButton=new QPushButton (a2); QString a3=tr (" to determine the parameters "); OkButton=new QPushButton (a3);//label QString a4=tr (number of "speed"); Nvlabel=new QLabel (a4); QString a5=tr (" loop number "); Nlooplabel=new QLabel (a5);//above, horizontal layout tophlayout=new QHBoxLayout; Tophlayout - & gt; AddWidget (nvlabel); Tophlayout - & gt; AddWidget (nvlineedit); Tophlayout - & gt; AddWidget (nlooplabel); Tophlayout - & gt; AddWidget (nlooplineedit); Tophlayout - & gt; AddWidget (okButton); Tophlayout - & gt; AddStretch (); RenderArea=new renderArea;//the overall layout vlayout=new QVBoxLayout; Vlayout - & gt; AddLayout (tophlayout); Vlayout - & gt; AddWidget (table); Vlayout - & gt; AddWidget (renderArea); The window=new QWidget; The window - & gt; SetLayout (vlayout); SetWindowTitle (tr (" fit "ABC")); SetCentralWidget (Windows); ShowMaximized (); {} void MainWindow: : create_table () nv=nvlineedit - & gt; The text (). ToInt (); } -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - render. H -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - # # ifndef RENDERAREA_H # define RENDERAREA_H # include & lt; QWidget> The class RenderArea: public QWidget {Q_OBJECTpublic: RenderArea (QWidget * parent=0); Protected: void paintEvent (QPaintEvent * event); }; # endif -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - render. CPP -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - # include & lt; QtGui> # include "render. H" RenderArea: : RenderArea (QWidget * parent) : QWidget (parent) {setBackgroundRole (QPalette: : Base); SetAutoFillBackground (true); } void RenderArea: : paintEvent (QPaintEvent */* */event) {static const QPoint points [4]={QPoint (10, 80), a QPoint (20, 10), QPoint (80, 30), QPoint (90, 70)}; }

CodePudding user response:

MTableWidget - & gt; SetStyleSheet (" background - color: transparent ");
  • Related