PySide6中plainTextEdit求教~~
PySide6中的plainTextEdit,当显示的内容太多时,会自动生成一个滚动条,但是不会光标跟随(意思就是不是随时显示最新的内容),请问有什么解决方法没? 在PySide6的QPlainTextEdit中,可以使用`ensureCursorVisible()`方法确保光标位置可见。你可以在每次插入新内容后调用这个方法。下面是一个简单的示例代码:from PySide6.QtWidgets import QApplication, QMainWindow, QPlainTextEdit
from PySide6.QtCore import Qt
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.text_edit = QPlainTextEdit(self)
self.setCentralWidget(self.text_edit)
self.timer = QTimer(self)
self.timer.timeout.connect(self.add_text)
self.timer.start(1000)# 每秒钟添加一次文本
def add_text(self):
self.text_edit.appendPlainText("Hello, World!")
self.text_edit.ensureCursorVisible()
if __name__ == '__main__':
app = QApplication()
window = MainWindow()
window.show()
app.exec()
上述代码中,我们使用了`timer`来模拟定时添加文本。每次添加完文本后,调用`ensureCursorVisible`方法以确保光标可见。这样,滚动条会自动跟随最新的内容。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 FishC 发表于 2024-3-26 21:35
在PySide6的QPlainTextEdit中,可以使用`ensureCursorVisible()`方法确保光标位置可见。你可以在每次插入新 ...
self.plainTextEdit.ensureCursorVisible()请问这是每次显示内容后都要执行一次吗? 凊风 发表于 2024-03-26 21:41
self.plainTextEdit.ensureCursorVisible()请问这是 ...
是的,`ensureCursorVisible()`方法确保光标可见,你需要在每次更新文本内容后都调用它。这样可以保证滚动条能够随着内容的更新而自动滚动到光标位置。如果不手动调用该方法,滚动条不会自动跟随光标位置。所以,在更新文本内容后添加`self.plainTextEdit.ensureCursorVisible()`保证光标始终可见。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 FishC 发表于 2024-3-26 21:41
是的,`ensureCursorVisible()`方法确保光标可见,你需要在每次更新文本内容后都调用它。这样可以保证 ...
请问一下:PySide中,rule, ok = QInputDialog.getText(self, '123',
f',退出:')
这种录入框能不能指定一个坐标,让它在指定位置出现。 凊风 发表于 2024-03-26 22:15
请问一下:PySide中,rule, ok = QInputDialog.getTex ...
在PySide中,`QInputDialog.getText()`方法创建的输入对话框是模态对话框,它默认会以居中的方式显示在父窗口的中央位置。如果你想要指定输入对话框的位置,可以使用`QInputDialog.setGeometry()`方法来实现。
下面是一个示例代码,演示了如何在指定位置显示输入对话框:
from PySide6.QtWidgets import QApplication, QMainWindow, QInputDialog
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setGeometry(100, 100, 400, 300)# 设置主窗口的位置和大小
self.show_input_dialog()
def show_input_dialog(self):
input_dialog = QInputDialog(self)
input_dialog.setWindowTitle('Input Dialog')
input_dialog.setLabelText('Please enter something:')
input_dialog.setGeometry(200, 200, 300, 200)# 设置输入对话框的位置和大小
if input_dialog.exec() == QInputDialog.Accepted:
text = input_dialog.textValue()
print(f'You entered: {text}')
if __name__ == '__main__':
app = QApplication()
window = MainWindow()
window.show()
app.exec()
在上述代码中,我们通过调用`setGeometry()`方法来设置输入对话框的位置和大小。你可以根据自己的需要调整`setGeometry()`的参数来指定输入对话框的位置。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 FishC 发表于 2024-3-26 22:15
在PySide中,`QInputDialog.getText()`方法创建的输入对话框是模态对话框,它默认会以居中的方式显示在 ...
QInputDialog.setGeometry(960, 650, 200, 100)
TypeError: descriptor 'setGeometry' for 'PySide6.QtWidgets.QWidget' objects doesn't apply to a 'int' object 凊风 发表于 2024-03-26 22:26
QInputDialog.setGeometry(960, 650, 200, 100)
Type ...
对不起,我之前给出的示例代码有误。实际上,`QInputDialog`类没有提供`setGeometry()`方法来设置输入对话框的位置和大小。要在指定位置显示输入对话框,可以使用`QInputDialog.move()`方法将其移动到指定的位置。下面是更新后的示例代码:from PySide6.QtWidgets import QApplication, QMainWindow, QInputDialogclass MainWindow(QMainWindow): def __init__(self): super().__init__() self.setGeometry(100, 100, 400, 300)# 设置主窗口的位置和大小 self.show_input_dialog() def show_input_dialog(self): input_dialog = QInputDialog(self) input_dialog.setWindowTitle('Input Dialog') input_dialog.setLabelText('Please enter something:') input_dialog.move(960, 650)# 移动输入对话框到指定位置 if input_dialog.exec() == QInputDialog.Accepted: text = input_dialog.textValue() print(f'You entered: {text}')if __name__ == '__main__': app = QApplication() window = MainWindow() window.show() app.exec()在上述代码中,我们通过调用`move()`方法将输入对话框移动到指定位置。你可以根据需要调整`move()`的参数来指定输入对话框的位置。请注意,这里的坐标是相对于父窗口的位置。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 FishC 发表于 2024-3-26 22:26
对不起,我之前给出的示例代码有误。实际上,`QInputDialog`类没有提供`setGeometry()`方法来设置输入 ...
回复请注意python格式 凊风 发表于 2024-03-26 22:27
回复请注意python格式
非常抱歉,以下是更新后的示例代码,修正了Python的格式:
from PySide6.QtWidgets import QApplication, QMainWindow, QInputDialog
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setGeometry(100, 100, 400, 300)# 设置主窗口的位置和大小
self.show_input_dialog()
def show_input_dialog(self):
input_dialog = QInputDialog(self)
input_dialog.setWindowTitle('Input Dialog')
input_dialog.setLabelText('Please enter something:')
input_dialog.move(960, 650)# 移动输入对话框到指定位置
if input_dialog.exec() == QInputDialog.Accepted:
text = input_dialog.textValue()
print(f'You entered: {text}')
if __name__ == '__main__':
app = QApplication()
window = MainWindow()
window.show()
app.exec()
非常抱歉给您带来的困扰,感谢您的理解。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 FishC 发表于 2024-3-26 22:27
非常抱歉,以下是更新后的示例代码,修正了Python的格式:
QInputDialog.move(200, 150)
TypeError: descriptor 'move' for 'PySide6.QtWidgets.QWidget' objects doesn't apply to a 'int' object
这是什么意思? 凊风 发表于 2024-03-26 22:29
QInputDialog.move(200, 150)
TypeError: descriptor ...
抱歉,之前的代码有误导。QInputDialog是一个对话框类,它没有move方法。如果您想要控制对话框显示的位置,可以使用`QInputDialog.setGeometry`方法。下面是修正后的示例代码:from PySide6.QtWidgets import QApplication, QMainWindow, QInputDialogclass MainWindow(QMainWindow): def __init__(self): super().__init__() self.setGeometry(100, 100, 400, 300)# 设置主窗口的位置和大小 self.show_input_dialog() def show_input_dialog(self): input_dialog = QInputDialog(self) input_dialog.setWindowTitle('Input Dialog') input_dialog.setLabelText('Please enter something:') input_dialog.setGeometry(200, 150, 300, 200)# 设置对话框的位置和大小 if input_dialog.exec() == QInputDialog.Accepted: text = input_dialog.textValue() print(f'You entered: {text}')if __name__ == '__main__': app = QApplication() window = MainWindow() window.show() app.exec()这样修改后,`QInputDialog.setGeometry`方法可以设置对话框的位置和大小。再次抱歉给您带来的困扰,希望这次能解决问题。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页:
[1]