Qt杂记——布局、信号与槽等
1.QHBoxLayout布局设置拉伸:
ui->TopLayout->setStretch(0,1); //left ui->TopLayout->setStretch(1,4); //right
就是说横向布局之中有两个控件、那么根据初始化的顺序默认index为0,1,所以分别设置两个控件的拉伸比例,上述代码中即为1:4显示。
2.QGridLayout布局,该布局会自动将整个布局区域分割成几行几列的形式,这时候需要设置最小拉伸宽度和高度来调整:
ui->gridLayout->addWidget(methodTree,0,0);//widget*,起始行,起始列,(所占行宽,所占列宽) ui->gridLayout->addWidget(frame,0,1); //widget*,起始行,起始列,(所占行宽,所占列宽) ui->gridLayout->setColumnMinimumWidth(0,150); //设置最小拉伸宽度(不小于) ui->gridLayout->setRowMinimumHeight(0,300); //设置最小拉伸高度(不小于) ui->gridLayout->setColumnStretch(0,1); //left index,拉伸系数 ui->gridLayout->setColumnStretch(1,4); //right index,拉伸系数
2.信号与槽注意事项:
connect()中信号与槽函数若有参数只能写类型,不能带参数名字,如:
connect(this,SIGNAL(itemClicked(QTreeWidgetItem*,int)),this,SLOT(TtemClicked(QTreeWidgetItem *, int)))
再一个就是信号和槽的参数的类型须一一对应,否则无法接收信号。
3.状态栏显示:
//初始化状态栏 QStatusBar *statusBar=ui->statusBar; msgLabel=new QLabel; msgLabel->setMinimumSize(150,20); msgLabel->setFrameShape(QFrame::WinPanel); msgLabel->setFrameShadow(QFrame::Sunken); statusBar->addWidget(msgLabel);
//创建一个槽函数,方便调用显示状态 void UdxConversion::showStatus(QString msg){ msgLabel->setText(tr(msg.toUtf8())); }