@@ -190,13 +190,17 @@ def _setup_ui(self):
190190
191191 # === Section Configuration (gauche) ===
192192 config_container = QWidget ()
193- config_layout = QVBoxLayout (config_container )
194- config_layout .setSpacing (10 )
193+ config_layout = QGridLayout (config_container )
194+ config_layout .setSpacing (15 )
195195 config_layout .setContentsMargins (5 , 5 , 5 , 5 )
196+ config_layout .setColumnStretch (0 , 1 )
197+ config_layout .setColumnStretch (1 , 1 )
198+ config_layout .setRowStretch (0 , 1 )
199+ config_layout .setRowStretch (1 , 1 )
196200
197- # Moteur
201+ # Moteur (top-left)
198202 engine_group = QGroupBox ("Engine Configuration" )
199- engine_group .setSizePolicy (QSizePolicy .Expanding , QSizePolicy .Preferred )
203+ engine_group .setSizePolicy (QSizePolicy .Expanding , QSizePolicy .Expanding )
200204 engine_layout = QVBoxLayout ()
201205 engine_layout .setSpacing (5 )
202206
@@ -208,7 +212,7 @@ def _setup_ui(self):
208212 engine_layout .addWidget (self .compiler_tabs )
209213
210214 compat_btn = QPushButton ("Check Compatibility" )
211- compat_btn .setMinimumHeight (28 )
215+ compat_btn .setMinimumHeight (32 )
212216 compat_btn .clicked .connect (self ._check_compatibility )
213217 engine_layout .addWidget (compat_btn )
214218
@@ -217,32 +221,33 @@ def _setup_ui(self):
217221 engine_layout .addWidget (self .compat_status_label )
218222
219223 engine_group .setLayout (engine_layout )
220- config_layout .addWidget (engine_group )
224+ config_layout .addWidget (engine_group , 0 , 0 )
221225
222- # Fichier
226+ # Fichier (top-right)
223227 file_group = QGroupBox ("File / Project Configuration" )
224- file_group .setSizePolicy (QSizePolicy .Expanding , QSizePolicy .Preferred )
225- file_layout = QGridLayout ()
226- file_layout .setSpacing (8 )
227- file_layout .setColumnStretch (1 , 1 )
228+ file_group .setSizePolicy (QSizePolicy .Expanding , QSizePolicy .Expanding )
229+ file_layout = QVBoxLayout ()
230+ file_layout .setSpacing (10 )
228231
229232 file_label = QLabel ("File to compile:" )
230- file_layout .addWidget (file_label , 0 , 0 )
233+ file_layout .addWidget (file_label )
231234
235+ file_input_layout = QHBoxLayout ()
232236 self .file_path_edit = QLineEdit ()
233237 self .file_path_edit .setPlaceholderText ("Select a Python file to compile..." )
234238 self .file_path_edit .setSizePolicy (QSizePolicy .Expanding , QSizePolicy .Fixed )
235- self .file_path_edit .setMinimumHeight (32 )
236- file_layout .addWidget (self .file_path_edit , 0 , 1 )
239+ self .file_path_edit .setMinimumHeight (35 )
240+ file_input_layout .addWidget (self .file_path_edit )
237241
238242 browse_btn = QPushButton ("Browse" )
239- browse_btn .setMinimumHeight (32 )
240- browse_btn .setMinimumWidth (80 )
243+ browse_btn .setMinimumHeight (35 )
244+ browse_btn .setMinimumWidth (90 )
241245 browse_btn .clicked .connect (self ._browse_file )
242- file_layout .addWidget (browse_btn , 0 , 2 )
246+ file_input_layout .addWidget (browse_btn )
243247
248+ file_layout .addLayout (file_input_layout )
244249 file_group .setLayout (file_layout )
245- config_layout .addWidget (file_group )
250+ config_layout .addWidget (file_group , 0 , 1 )
246251
247252 # Workspace
248253 workspace_group = QGroupBox ("Workspace" )
@@ -270,23 +275,23 @@ def _setup_ui(self):
270275 workspace_group .setLayout (workspace_layout )
271276 config_layout .addWidget (workspace_group )
272277
273- # Actions
278+ # Actions (bottom-right)
274279 actions_group = QGroupBox ("Actions" )
275- actions_group .setSizePolicy (QSizePolicy .Expanding , QSizePolicy .Preferred )
276- actions_layout = QHBoxLayout ()
277- actions_layout .setSpacing (10 )
280+ actions_group .setSizePolicy (QSizePolicy .Expanding , QSizePolicy .Expanding )
281+ actions_layout = QVBoxLayout ()
282+ actions_layout .setSpacing (12 )
278283
279284 self .compile_btn = QPushButton ("Compile" )
280- self .compile_btn .setMinimumHeight (40 )
285+ self .compile_btn .setMinimumHeight (36 )
281286 self .compile_btn .setStyleSheet (
282287 """
283288 QPushButton {
284289 background-color: #4caf50;
285290 color: white;
286- font-size: 14px ;
291+ font-size: 16px ;
287292 font-weight: bold;
288- border-radius: 5px ;
289- padding: 8px 16px ;
293+ border-radius: 6px ;
294+ padding: 10px 20px ;
290295 }
291296 QPushButton:hover {
292297 background-color: #45a049;
@@ -299,25 +304,27 @@ def _setup_ui(self):
299304 self .compile_btn .clicked .connect (self ._run_compilation )
300305 actions_layout .addWidget (self .compile_btn )
301306
307+ button_row = QHBoxLayout ()
308+ button_row .setSpacing (10 )
309+
302310 dry_run_btn = QPushButton ("Dry Run" )
303- dry_run_btn .setMinimumHeight (40 )
311+ dry_run_btn .setMinimumHeight (32 )
304312 dry_run_btn .clicked .connect (self ._dry_run )
305- actions_layout .addWidget (dry_run_btn )
313+ button_row .addWidget (dry_run_btn )
306314
307315 refresh_btn = QPushButton ("Refresh Engines" )
308- refresh_btn .setMinimumHeight (40 )
316+ refresh_btn .setMinimumHeight (32 )
309317 refresh_btn .clicked .connect (self ._refresh_engines )
310- actions_layout .addWidget (refresh_btn )
311-
312- actions_layout .addStretch ()
318+ button_row .addWidget (refresh_btn )
313319
314320 clear_log_btn = QPushButton ("Clear Log" )
315- clear_log_btn .setMinimumHeight (40 )
321+ clear_log_btn .setMinimumHeight (32 )
316322 clear_log_btn .clicked .connect (self ._clear_log )
317- actions_layout .addWidget (clear_log_btn )
323+ button_row .addWidget (clear_log_btn )
318324
325+ actions_layout .addLayout (button_row )
319326 actions_group .setLayout (actions_layout )
320- config_layout .addWidget (actions_group )
327+ config_layout .addWidget (actions_group , 1 , 1 )
321328
322329 top_splitter .addWidget (config_container )
323330
@@ -352,7 +359,7 @@ def _setup_ui(self):
352359 # Progress bar
353360 self .progress_bar = QProgressBar ()
354361 self .progress_bar .setVisible (False )
355- self .progress_bar .setMinimumHeight (24 )
362+ self .progress_bar .setMinimumHeight (18 )
356363 log_layout_inner .addWidget (self .progress_bar )
357364
358365 log_group .setLayout (log_layout_inner )
@@ -368,12 +375,12 @@ def _setup_ui(self):
368375 # === Barre de statut ===
369376 self .statusBar = QStatusBar ()
370377 self .statusBar .setSizePolicy (QSizePolicy .Expanding , QSizePolicy .Fixed )
371- self .statusBar .setMinimumHeight (28 )
378+ self .statusBar .setMinimumHeight (22 )
372379 self .setStatusBar (self .statusBar )
373380 self .statusBar .showMessage ("Ready" )
374381
375382 # Définir les proportions du splitter vertical
376- main_splitter .setSizes ([700 , 200 ])
383+ main_splitter .setSizes ([700 , 120 ])
377384
378385 def _center_window (self ):
379386 """Centre la fenêtre sur l'écran."""
0 commit comments