[英]Copy strings from multiple lineEdit slots as variable to one textEdit slot in PyQt4
為了更加清晰明了,這里是如何工作的。
在python中,要創建變量,只需使用
var1 = raw_input('your name?')
這樣在使用時
print 'your name is ' +var1
它將打印存儲在var1中的字符串。
問題是如何使用Pyqt4做到這一點? 我有3個lineEdit象征着姓名,年齡和性別,還有一個textEdit可以將lineEdit中的字符串打印到此textEdit中。 就像制作電話簿一樣。 可能嗎? 代碼看起來如何? 我很想知道答案..
在這里,我提供一些資料來使事情變得更清楚。
這是ui:
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'phonebook.ui'
#
# Created: Sat Oct 2 15:18:52 2010
# by: PyQt4 UI code generator 4.7.2
#
# WARNING! All changes made in this file will be lost!
from PyQt4 import QtCore, QtGui
class Ui_phonebook(object):
def setupUi(self, phonebook):
phonebook.setObjectName("phonebook")
phonebook.resize(240, 300)
phonebook.setMinimumSize(QtCore.QSize(240, 300))
phonebook.setMaximumSize(QtCore.QSize(240, 300))
self.label = QtGui.QLabel(phonebook)
self.label.setGeometry(QtCore.QRect(20, 30, 57, 14))
self.label.setObjectName("label")
self.label_2 = QtGui.QLabel(phonebook)
self.label_2.setGeometry(QtCore.QRect(20, 60, 57, 14))
self.label_2.setObjectName("label_2")
self.lineEdit = QtGui.QLineEdit(phonebook)
self.lineEdit.setGeometry(QtCore.QRect(110, 30, 113, 20))
self.lineEdit.setObjectName("lineEdit")
self.lineEdit_2 = QtGui.QLineEdit(phonebook)
self.lineEdit_2.setGeometry(QtCore.QRect(110, 60, 113, 20))
self.lineEdit_2.setObjectName("lineEdit_2")
self.textEdit = QtGui.QTextEdit(phonebook)
self.textEdit.setGeometry(QtCore.QRect(20, 142, 201, 141))
self.textEdit.setObjectName("textEdit")
self.pushButton = QtGui.QPushButton(phonebook)
self.pushButton.setGeometry(QtCore.QRect(70, 100, 89, 23))
self.pushButton.setObjectName("pushButton")
self.retranslateUi(phonebook)
QtCore.QMetaObject.connectSlotsByName(phonebook)
def retranslateUi(self, phonebook):
phonebook.setWindowTitle(QtGui.QApplication.translate("phonebook", "Simple Phonebook", None, QtGui.QApplication.UnicodeUTF8))
self.label.setText(QtGui.QApplication.translate("phonebook", "Name:", None, QtGui.QApplication.UnicodeUTF8))
self.label_2.setText(QtGui.QApplication.translate("phonebook", "E-mail:", None, QtGui.QApplication.UnicodeUTF8))
self.lineEdit.setText(QtGui.QApplication.translate("phonebook", "lineEdit", None, QtGui.QApplication.UnicodeUTF8))
self.lineEdit_2.setText(QtGui.QApplication.translate("phonebook", "lineEdit_2", None, QtGui.QApplication.UnicodeUTF8))
self.pushButton.setText(QtGui.QApplication.translate("phonebook", "Preview", None, QtGui.QApplication.UnicodeUTF8))
這是主要來源:
#! /usr/bin/env python
import sys
from PyQt4 import QtCore, QtGui
from phonebook import Ui_phonebook
class Main(QtGui.QDialog):
def __init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
self.ui = Ui_phonebook()
self.ui.setupUi(self)
self.center()
QtCore.QObject.connect(self.ui.pushButton, QtCore.SIGNAL('clicked()'), self.preview)
def preview(self):
lineEdit = '"content inside lineEdit"'
lineEdit_2 = '"content inside lineEdit_2"'
self.ui.textEdit.setText('Name: ' +lineEdit +'\n\nEmail: ' +lineEdit_2)
def center(self):
screen = QtGui.QDesktopWidget().screenGeometry()
size = self.geometry()
self.move((screen.width()-size.width())/2, (screen.height()-size.height())/2)
if __name__ == '__main__':
app = QtGui.QApplication(sys.argv)
main = Main()
main.show()
sys.exit(app.exec_())
在Qt(和PyQt)中單擊按鈕時,它會發出一個信號 。 您可以將此信號連接到任何插槽(在PyQt中可以使用任何Python方法),然后在該插槽中做任何您想做的事情-例如查看3個框中的文本並打印一些內容。
例如,假設您使用以下按鈕創建了一個按鈕:
self.start_button = QPushButton("&Start")
連接其clicked
信號:
self.connect(self.start_button, SIGNAL('clicked()'), self.on_start)
轉到類的on_start
方法。 在此方法中,調用其他窗口小部件的相關方法以執行所需的任何操作。
我解決了這個奧秘..好吧,我只需要插入text()!
def preview(self):
lineEdit = self.ui.lineEdit.text()
lineEdit_2 = self.ui.lineEdit_2.text()
self.ui.textEdit.setText('Name: ' +lineEdit +'\n\nEmail: ' +lineEdit_2)
是的..那應該使我的夢想成真..感謝所有投入埃弗福德幫助我的人.. = ^ _ ^ =
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.