16,223
社区成员
发帖
与我相关
我的任务
分享
class PicWidget : public QWidget
{
Q_OBJECT
public:
explicit PicWidget(QWidget *parent = 0);
// QSize sizeHint();
void setFile(QFile* sfile, QDataStream* sin,FrameParam* sframeparam);
//Helper helper;
INT32 framenumber;
private:
QFile* file;
QDataStream* in;
FrameParam *frameparam;
protected:
void paintEvent(QPaintEvent *event);
signals:
public slots:
};
这个是我继承的DataPicture类void MainWindow::setupUi(){
setWindowTitle("黑白上位机0.99beta");
datapicture=new PicWidget(this);
datapicture->show();
label1=new QLabel("帧数",this);
chooseframeslider=new QSlider(Qt::Horizontal,this);
chooseframespinbox=new QSpinBox(this);
playbutton=new QPushButton("播放",this);
label2=new QLabel("变量窗口",this);
variablewindow=new QTextBrowser(this);
groupbox1=new QGroupBox("从SD卡导入数据",this);
label1_1=new QLabel("SD卡",this);
label1_2=new QLabel("保存路径",this);
sdlist=new QComboBox(this);
datasavepath=new QLineEdit(this);
datasavepathchoose=new QToolButton(this);
datasavepathchoose->setText("...");
refreshdevice=new QPushButton("刷新设备",this);
importdata=new QPushButton("导入",this);
openafterimport=new QCheckBox("导入后自动打开",this);
groupbox2=new QGroupBox("打开数据文件",this);
opendatafile=new QPushButton("打开...",this);
groupbox3=new QGroupBox("插件功能",this);
label3_1=new QLabel("插件功能暂未开通",this);
QHBoxLayout *mainlayout=new QHBoxLayout;
QVBoxLayout *leftlayout=new QVBoxLayout;
QVBoxLayout *rightlayout=new QVBoxLayout;
QHBoxLayout *leftmiddlelayout=new QHBoxLayout;
QVBoxLayout *groupbox1layout=new QVBoxLayout;
QHBoxLayout *groupbox1layout1=new QHBoxLayout;
QHBoxLayout *groupbox1layout2=new QHBoxLayout;
QHBoxLayout *groupbox1layout3=new QHBoxLayout;
QVBoxLayout *groupbox2layout=new QVBoxLayout;
QVBoxLayout *groupbox3layout=new QVBoxLayout;
//构建左边的样式
leftlayout->addWidget(datapicture);
leftmiddlelayout->addWidget(label1);
leftmiddlelayout->addWidget(chooseframeslider);
leftmiddlelayout->addWidget(playbutton);
leftmiddlelayout->addWidget(chooseframespinbox);
leftlayout->addLayout(leftmiddlelayout);
leftlayout->addWidget(label2);
leftlayout->addWidget(variablewindow);
//构建groupbox1的样式
groupbox1layout1->addWidget(label1_1);
groupbox1layout1->addWidget(sdlist);
groupbox1layout->addLayout(groupbox1layout1);
groupbox1layout2->addWidget(label1_2);
groupbox1layout2->addWidget(datasavepath);
groupbox1layout2->addWidget(datasavepathchoose);
groupbox1layout->addLayout(groupbox1layout2);
groupbox1layout->addWidget(refreshdevice);
groupbox1layout3->addWidget(openafterimport);
groupbox1layout3->addWidget(importdata);
groupbox1layout->addLayout(groupbox1layout3);
groupbox1->setLayout(groupbox1layout);
//构建groupbox2样式
groupbox2layout->addWidget(opendatafile);
groupbox2->setLayout(groupbox2layout);
//构建groupbox3样式
groupbox3layout->addWidget(label3_1);
groupbox3->setLayout(groupbox3layout);
rightlayout->addWidget(groupbox1);
rightlayout->addWidget(groupbox2);
rightlayout->addWidget(groupbox3);
mainlayout->addLayout(leftlayout);
mainlayout->addLayout(rightlayout);
setLayout(mainlayout);
}
以上 分为左右两个QVBoxLayout 左边那个里面从上到下添加datapicture 一个QHBoxLayout,内包含一个label 一个slider 一个pushbutton和一个spinbox
然后QVBoxLayout继续添加label和variablewindow. 就是把datapicture添加到第一个里面后不显示 只是顶部稍微多空了点距离。是不是因为窗口尺寸的问题?但是我datapicture->resize()什么的都试过了,没反应