第一天醉生梦死般度过,感谢网上各种大佬的帮忙。
一些耗费了我巨大心力实则愚蠢之极 的问题
-
error: ‘class Widget’ has no member named ‘show’ w.show()
undefined reference to `MainWindow::~MainWindow()'
刚开始我居然试图用mainwindow类强行些widget,真的是……
解决方案:重开项目,类名随便,基类选择QWidget类 。 -
warning:QT_DEVICE_PIXEL_RATIO is deprecated.
查错的时候发现的警告,并不会影响什么。 -
QWidget::setLayout: Attempting to set QLayout “” on Widget “Widget”, which already has a layout.
这无疑搞疯我了,一下午都没有显示出我的布局。
解决方案:查了很多资料,体感自己的问题是想偷懒,把本项目的.ui删了,直接把上个项目的.ui剪切过来导致系统自动给主窗口类了一个默认布局(这也许是一个顺序问题)。最好还是重头来过,自己瞎搞不知道什么时候才能搞好。ps:setLayout只能布局一次
若是QMainwindow类,会默认布局(开头加句QWidget widget=new QWidget)应该就行了。其他的倒是不会,但我的问题是如上述所示(估计粘贴过来的是QMainwindow的)。。
纯代码再用一个垂直布局
VBoxLayout->addLayout(HBoxLayout1);
VBoxLayout->addLayout(HBoxLayout2);
VBoxLayout->addLayout(HBoxLayout3);
ui设计的(简单些):
QHBoxLayout* HBoxLayout=new QHBoxLayout;
pushButton1=new QPushButton("1");
pushButton2=new QPushButton("2");
pushButton3=new QPushButton("3");
pushButton4=new QPushButton("4");
pushButton5=new QPushButton("5");
pushButton6=new QPushButton("6");
pushButton7=new QPushButton("6");
pushButton8=new QPushButton("8");
pushButton9=new QPushButton("9");
pushButton0=new QPushButton("0");
pushButtonAdd=new QPushButton("+");
pushButtonDy=new QPushButton("=");
pushButtonJh=new QPushButton("-");
pushButtonNull=new QPushButton("Null");
pushButtonCf=new QPushButton("/");//除
pushButtonCh=new QPushButton("*");//*
setLayout(HBoxLayout);
//再给一个栅格布局的
QWidget* widget = new QWidget;
QGridLayout* GridLayout = new QGridLayout(widget);
button1 = new QPushButton("1");
button2 = new QPushButton("2");
butto