Combining 2 UI as one main app window in python - python

I created a main app with a mdiArea for loading map graphics with Qt Designer *.ui and coded with pyQt4 using uic.loadUi() in python.
I also created a separate *.ui file and tested the dockWidget successfully in a separate python script file.
I wish to combine these 2 UI so that the main_app window will have the mdiArea widget on the left, while the dockWidget as the info_panel on the right.
I tried to load the *.ui file in the main app python, but ended up the dockWidget as a separate window when show().
Any advice to resolve this?
I hope I need not have to use Qt Designer to combine the mdiArea main_app UI with the dockWidget info_panel and load them as a single UI. ;P
Thanks in advance.

I've worked on some software where every different pane is done as a separate. Ui file, so that they can be changed independently without requiring merges. It worked fine. Can you turn the map and dock parts into widgets, and then make a new "main window" ui, and then give that a layout and add the other two as child widgets to it?

Related

Converting .ui to .py with pyuic5?

When I convert a .ui file in QtDesigner to a .py file, the format changes and it runs differently.
When I run it in QtDesigner it looks like a normal page but once I convert it to a .py file and run it, the edges are cut off and I cannot see half the buttons/labels. Even once I expand the screen that has opened the labels are cut off and only half visible.
Is there a way I can stop this from happening?
You firstly need to correctly set the layout and widgets inside them, in a way that the size of each object is guaranteed when moving to the code.
Try to watch this tutorial, I found it very useful!
Qt Designer - create application GUI (DESIGN APPLICATION LAYOUT) - part 02
And then you need to just import the .ui file as follows:
from PyQt5 import uic
class MainWindow(QMainWindow):
def __init__(self):
super(MainWindow,self).__init__()
uic.loadUi("NameofYourFile.ui",self)
self.show()

Qt Designer showing a different output and Python file when run showing a different output

I am using Qt Designer for creating GUI files all work well for me in Qt Designer GUI window but if I run the generated file in Python it the text context is cut short, I need to know why this is happening?
This image is the preview feature of Qt Designer:
This image is the output of the python file generated when the QtDesigner was converted to a python file and executed.:
I suppose you are new in PyQt5.Sooner or later you will understand that whenever you create something in Qt designer like a button or a label,this item will be completely static.That means that whatever you create will be 'stuck' there with the absolute coordinates you defined and absolutelly zero interactivity.Here comes layers and minimum-maximum sizes of widgets.You can apparently just drag more your labels width manually from Qt Designer but this approach will not get you very far.Because this topic is rather big ,i will suggest playing more with Qt Designer and the inputs you can provide on the right tab ,and watch some tutorial about PyQt5 like this:https://www.youtube.com/watch?v=FVpho_UiDAY&ab_channel=TechWithTim

Qt Designer and Frameless Window

I am currently creating a GUI for an application and I want to make it frameless and add the minimize and close buttons myself. What I want to achieve can be seen in this answer:
The window structure I want to achieve
Since the GUI structure that I have in mind is really complex I really need that I have to use Qt Designer. Is there a way to achieve what is done in the answer above in the Qt Designer?
One way to achieve this is to create your application window as usual in Qt Designer, load the .ui file in the python via uic.loadUi and add it to the layout of box.contentWidget() instead of the edit in the linked example.

Python setGeometry function

I am working with QT designer to design .ui files.I converted .ui to .py file using pyuic4 compiler and coded it.
When i try to run it,it does not show the ui file i designed.All ui components on form are overlapped . But if i use setgeometry function to locate those components on form then it works fine.
How are you doing the layout of the form? I am guessing that you are manually positioning and sizing the widgets.
You should rather use the qt layout managers. Here is some documentation on how to do this:
Using Layouts in Qt Designer
Qt Layouts – The Basics

Help in designing layout with qtdesigner for python

I am working on Qtdesigner for generating a GUI for my python app.
The problem is that I had manually made the widgets and then compiled it to py. But then I found out that the components did not resize when maximised.
So I opened the .ui file in designer and selected the group box for my widgets and chose layout in grid by right clicking on it.
Even now the widgets do not resize on maximising....
Do I have to do something else ???
Thanks a lot...
To have the widgets resized with the window, you must apply a layout to your top-level object (usually QMainWindow), and then place your new widgets where you want in the layout (and maybe other layouts for a more complicated window).
NOTE: the menu items allowing to apply a layout on the main window will be available only once you have placed your first widget in it.

Categories