Cool_Coder
Cool_Coder

Reputation: 5073

Resize size of Main Window depending on Hardware in Qt?

I have developed my Application with most of the Widgets in Qt Creator's Designer module. I have hard coded the sizes of my widgets depending on how they appeared on my laptop. Yesterday when I ran the application on my Desktop (lower screen resolution than laptop) some of the Main Window widgets were not visible & on startup there was horizontal scrollbar & I had to scroll to see those widgets; which is not the case on my laptop. I have 2 problems:

  1. Is it possible to resize all of my widgets (even those which are added run time by code) by using some resize factor? Maybe at startup I will get the screen resolution of Hardware in which application is running & then create a ratio of that with resolution of my laptop. Is it possible to multiply this factor to all widgets without adding code for each widget?

  2. How do I get the resolution of the Screen in which my Application is running?

PS: I would like to know the defacto method of solving this problem... Thank You.

Upvotes: 1

Views: 3502

Answers (2)

rmarshw
rmarshw

Reputation: 56

You could try a function like this:

resize(theDesktop->screenGeometry().width()*PERCENTAGE_OF_MONITOR_WIDTH_FOR_SCREEN, theDesktop->screenGeometry().height()*PERCENTAGE_OF_MONITOR_HEIGHT_FOR_SCREEN);

Resize is a member function of the QWidget class and the PERCENTAGE_OF_MONITOR variables would be whatever percentage of the monitor you want your application to take up.

theDesktop is of the type QDesktopWidget.

Upvotes: 3

bruno
bruno

Reputation: 2882

You should use Layouts to manage the size policy of your widgets.

Qt layouts automatically position and resize widgets when the amount of space available for them changes, ensuring that they are consistently arranged and that the user interface as a whole remains usable."

You could also check this question for more information regarding layout machanisms in Qt.

Qt website has got excelent documentation on the subject. You can start here for more information on working with layouts in Qt Designer.

Upvotes: 2

Related Questions