2016-04-05 11 views
0

スクリプトを実行すると、メインフォームが最大化されます(つまり、画面上のすべての領域を占有します)。 CSSファイルを使ってフォームの高さと幅を設定しようとしましたが、うまくいかなかった。私は他の場所でそれについて何も見たことがありません。ここでPyforms - フォームが常に最大に表示されます

は私のコードです:

import sys 
import pyforms 
from pyforms import BaseWidget 
from pyforms.Controls import ControlText 
from pyforms.Controls import ControlButton 
from pyforms.Controls import ControlFile 
class ImportIntoFile(BaseWidget): 

def __init__(self): 
    super(ImportIntoFile,self).__init__('HTCondor & EnergyPlus') 

    self._Input  = ControlFile('Input') 
    self._Output = ControlFile('Output') 
    self._Import = ControlButton('Import') 
    self._Close  = ControlButton('Close') 

    self._formset = ['',(' ','_Input',' '),(' ','_Output',' '),('','_Close','','_Import',''),''] 

    self._Import.value = self.__ImportAction 
    self._Close.value = self.__CloseAction 

def __ImportAction(self): 
    OutputFile = open(self._Output.value,'a')  
    InputFile = open(self._Input.value,'r') 

    OutputFile.close 
    InputFile.close 

def __CloseAction(self): 
    sys.exit() 

if __name__ == "__main__": pyforms.startApp(ImportIntoFile)` 
+0

この現象を示すサンプルコードがありますか? –

+0

このように動作するスクリプトの簡単な例を教えてください。詳細は[mcve]を参照してください。 –

+0

私の投稿を更新しました。 –

答えて

1

私も良い解決策を見つけることができません。一時的な回避策として、デフォルトで最大化を避けたいのであれば、C:\ Python27 \ Lib \ site-packages \ pyforms \ gui \ standaloneManager.pyを修正しています。

if geometry is not None: 
    w.show() 
    w.setGeometry(*geometry) 
else: 
    w.showNormal() 
+0

それは素晴らしいです!共有していただきありがとうございます。私はコードを見ていないと思った...あなたはソースコード(https://github.com/UmSenhorQualquer/pyforms/blob/master/pyforms/gui/standaloneManager.py)に変更を提出することを考えましたか? –

2

私は同じ問題を抱えていました。 PyformsはQt、so some of these modules will be familiar、およびthis css will modify themを使用します。

QMainWindow{ 
    max-width:500px; 
    max-height:500px; 
} 

が正常にメインウィンドウのサイズを設定していますが、後でサイズを大きくすることはできませんので、あなたが望むすべてが固定サイズのウィンドウがある場合、それは動作します:

は、私が使用していました。

2

if geometry is not None: 
    w.show() 
    w.setGeometry(*geometry) 
else: 
    w.showMaximized() 

から

あなたはpyforms.startApp()の呼び出しに窓ジオメトリを渡すことができます。したがって、以下のコードのようなものが動作するはずです。

if __name__ == "__main__": 
    pyforms.startApp(ImportIntoFile, geometry=(200, 200, 400, 400)) 
関連する問題