2013-04-29 32 views
17

Tôi mới sử dụng Qt, vì vậy tôi tự hỏi liệu có cách nào để đặt kích thước của QMainWindow thành (ví dụ) 70% máy tính để bàn của người dùng hay không.
Tôi đã thử yếu tố kéo dài nhưng nó không hoạt động. QWidget::setFixedSize đã hoạt động nhưng chỉ với số pixel, tôi nghĩ vậy.Qt: Đặt kích thước của QMainWindow

+1

Xem liên kết này: Và bạn có thể tính 70% số đó. –

+0

amir đi trước và đăng bài như một câu trả lời. – UmNyobe

+0

okay Cảm ơn tôi sẽ cố gắng này :) – dadod2

Trả lời

19

Nhờ Amir eas. Vấn đề đã được giải quyết. Dưới đây là đoạn code cho nó:

#include <QDesktopWidget> 
#include <QMainWindow> 
... 
QDesktopWidget dw; 
MainWindow w; 
... 
int x=dw.width()*0.7; 
int y=dw.height()*0.7; 
w.setFixedSize(x,y); 
+2

Điều này sẽ không hoạt động tốt cho thiết lập đa màn hình: \ Bất kỳ ý tưởng nào về điều đó? – chwi

+2

@Wilhelmsen: bạn có thể sử dụng 'QDesktiopWidget :: primaryScreen()' như trong câu trả lời cho câu hỏi này: http://stackoverflow.com/questions/17893328/qt-getting-the-screen-resolution-without-the-extended - người theo dõi – vsz

4

Bạn có thể sử dụng phương pháp availableGeometry(QWidget*) trong QDesktopWidget, điều này sẽ cung cấp cho bạn hình học của màn hình widget này là hiện nay trên.
Ví dụ:

QRect screenSize = desktop.availableGeometry(this); 
this->setFixedSize(QSize(screenSize.width * 0.7f, screenSize.height * 0.7f)); 

đâu this là con trỏ MainWindow. Điều này sẽ hoạt động khi sử dụng nhiều màn hình.

28

Một nơi nào đó trong constructor QMainWindow của bạn, làm điều này:

resize(QDesktopWidget().availableGeometry(this).size() * 0.7);

Điều này sẽ thay đổi kích thước cửa sổ đến 70% không gian màn hình có sẵn.

Các vấn đề liên quan