我對qt很感興趣。我試圖創建一個窗口小部件。該小部件包含一張圖片(一個國際象棋棋盤)。現在,如果我試圖顯示窗口,它會顯示該圖片的一部分。這裏的代碼Qt - 如何獲得MainWindow中的側邊欄
#include<QApplication>
#include<QMainWindow>
#include<QWidget>
#include<QMenu>
#include<QMenuBar>
#include<QPainter>
#include<QFrame>
#include<QHBoxLayout>
#include<iostream>
using namespace std;
class MyWindow:public QMainWindow
{
public:
MyWindow();
};
class MyWidget:public QWidget
{
public:
MyWidget();
void paintEvent(QPaintEvent * event);
};
int main(int argc,char *argv[])
{
Q_INIT_RESOURCE(puzzle);
QApplication app(argc,argv);
MyWindow mainWindow;
mainWindow.show();
return app.exec();
}
MyWindow::MyWindow():QMainWindow()
{
setSizePolicy(QSizePolicy(QSizePolicy::Fixed,QSizePolicy::Fixed));
QMenu * fileMenu=menuBar()->addMenu(QObject::tr("Options"));
QAction * restartAction = fileMenu->addAction(tr("NewGame"));
QAction * exitAction = fileMenu->addAction(tr("Exit"));
exitAction->setShortcuts(QKeySequence::Quit);
QWidget * tempWidget=new MyWidget();
QFrame * newFrame=new QFrame();
QHBoxLayout * horizontal= new QHBoxLayout(newFrame);
horizontal->addWidget(tempWidget);
setCentralWidget(newFrame);
}
MyWidget::MyWidget():QWidget()
{
setMinimumSize(100,100);
setMaximumSize(1000,1000);
}
void MyWidget::paintEvent(QPaintEvent * event)
{
QPainter painter;
painter.begin(this);
painter.drawPixmap(QRect(0,0,500,600),QPixmap("Board").scaled(QSize(500,600),Qt::KeepAspectRatioByExpanding,Qt::SmoothTransformation));
painter.end();
}
對不起,但我不明白。你究竟想要完成什麼? – humbagumba 2010-06-11 11:05:37
對不起,這是拼寫錯誤。實際上它是滑動條 – prabhakaran 2010-06-12 02:27:31
在上面的代碼中,我試圖通過窗口小部件在窗口中顯示圖片。但由於窗口大小比圖片小,我需要在窗口中的滾動條才能看到整個圖片。但是我沒有在窗口中找到任何滾動條。所以,我想問哪個函數將設置滾動條 – prabhakaran 2010-06-12 03:03:24