• 6311阅读
  • 2回复

[提问]急啊!!!QT显示button 位置总是在左上角。怎么使用布局管理写到右边竖直排列呢? [复制链接]

上一主题 下一主题
离线醉意微微
 
只看楼主 倒序阅读 楼主  发表于: 2011-05-01
具体代码如下:

main.cpp
#include <QApplication>
#include "mainwindow.h"
int main(int argc, char * argv[])
{
QApplication app(argc, argv);
MainWindow * mainWindow = new MainWindow;
mainWindow->resize(645, 570);
mainWindow->show();
return app.exec();
}


mainWindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QtGui>
#include "imagewidget.h"
#include "thread.h"
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow();
private:
QScrollArea * mainDisplay;
ImageWidget * imageWidget;

QMenu * fileMenu;
QToolBar * toolBar;
QPushButton * capturebutton;
  QPushButton * refreshbutton;
};
#endif


mainWindow.cpp

#include <QtGui>
#include <QTime>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/types.h>
#include <memory.h>
#include <fcntl.h>
#include <netdb.h>
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
#include <memory.h>
#include <unistd.h>
#include <arpa/inet.h>
#include "mainwindow.h"
#include "connectdialog.h"
#include "thread.h"
MainWindow::MainWindow()
{
vlayout =new  Vlayout;  //布局管理忘了具体怎么写了。。。
mainlayout=new Hlayout;
imageWidget = new ImageWidget;
mainDisplay = new QScrollArea;

mainDisplay->setBackgroundRole(QPalette::Dark);
imageWidget->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored);
mainDisplay->setWidget(imageWidget);
mainDisplay->widget()->setMinimumSize(640, 480);
setCentralWidget(mainDisplay);
createAction();
createMenu();
createToolBar();
createStatusBar();
createButton();
imageWidget->setPixmap("./images/start.png");
setWindowTitle(tr("camera client"));
setWindowIcon(QIcon("./images/camera.png"));
setFocusPolicy(Qt::StrongFocus);
connect(paintThread, SIGNAL(dataReady()), this, SLOT(paint()));
}

void MainWindow::createButton()
{
capturebutton = new QPushButton(tr("Capture"),this);
refreshbutton = new QPushButton(tr("Refresh"),this);
vlayout->addwidget(capturebutton);
vlayout->addwidget(refreshbutton );
mainlayout->addlayout(vlayout);

}
离线wxj120bw

只看该作者 1楼 发表于: 2011-05-01
qvboxlayout排按钮 用qhboxlayout坐顶层界面的布局和用QSpacerItem填左边的空白。
离线ppdayz

只看该作者 2楼 发表于: 2011-05-01
建议用qt designer下现完成布局,然后再去把代码抠出来,这样好多东西就很方便了
快速回复
限100 字节
 
上一个 下一个