PyQt4では、機能が完了するまでウィンドウのサイズを一時停止する方法はありますか?PyQt GUIリサイズイベントの前に機能を実行する方法
私の問題は、大量のテキストが含まれている可能性のあるテキスト編集ウィンドウを作成したことです。私はグリッドレイアウトの作業に切り替えたので、テキストの編集も同様にサイズが変更され、多くのテキストがあると、アプリケーションがハングします。私はサイズ変更時にテキストをクリアするためにresizeEventをオーバーライドしようとしましたが、サイズ変更後にテキストをクリアしているので、アプリケーションはまだハングします。
その他の解決策も歓迎されます。
Pythonコード(及び.uiファイルへのリンク):
import sys
from PyQt4 import QtGui, uic, QtCore
from PyQt4.QtGui import QDesktopWidget
qtCreatorMainWindowFile = "mainwindow.ui"
Ui_MainWindow, QtBaseClass = uic.loadUiType(qtCreatorMainWindowFile)
class MainWindow(QtBaseClass, Ui_MainWindow):
def __init__(self):
QtBaseClass.__init__(self)
self.setupUi(self)
# Set window size to 4/5 of the screen dimensions
sg = QDesktopWidget().screenGeometry()
self.resize(sg.width()*4/5, sg.height()*4/5)
self.clearTextBrowserButton.clicked.connect(self.ClearTextBrowsers)
@staticmethod
def WriteToTextBrowser(string, text_browser):
cursor = text_browser.textCursor()
cursor.movePosition(QtGui.QTextCursor.End)
cursor.insertText(string)
text_browser.setTextCursor(cursor)
text_browser.ensureCursorVisible()
def ClearTextBrowsers(self):
self.textBrowser.clear()
# def resizeEvent(self,event):
# print "resize"
# self.ClearTextBrowsers()
app = QtGui.QApplication(sys.argv)
window = MainWindow()
window.show()
for i in range(1,100000):
window.WriteToTextBrowser("TESTTESTTESTTESTTESTTESTTESTTESTTESTTESTTESTTESTTESTTESTTESTTESTTESTTESTTESTTESTTESTTESTTESTTESTTESTTESTTESTTESTTESTTESTTESTTEST\r\n",window.textBrowser)
sys.exit(app.exec_())
UI。ファイル: https://www.dropbox.com/s/y3hxp6mjhfpv2hy/mainwindow.ui?dl=0
1つのオプションは、ウィンドウをリサイズ避けるためかもしれませんか? – eyllanesc
残念ながら、それはグリッドレイアウトへの切り替えの全ポイントでした。 – sas
@sas解決策を見つけたら、回答として公開することをお勧めします。 – eyllanesc