ការបង្កើតផ្ទាំងប្រយោគ
ផ្ទាំងប្រយោគ (line editor) គឺជារូបម៉្យាងប្រើសម្រាប់ចម្លងយកឃ្លាប្រយោគទាំងឡាយណាដែលត្រូវបានសរសេរនៅលើនោះ។ ដើម្បីបង្កើតផ្ទាំងប្រយោគ យើងត្រូវយកថ្នាក់ឈ្មោះ QLineEdit មកប្រើដោយសរសេរកម្មវិធីដូចខាងក្រោមនេះ៖
import sys
from PyQt4.QtCore import*
from PyQt4.QtGui import*
class រូបមេ(QWidget):
def __init__(សិស្ស):
QWidget.__init__(សិស្ស)
សិស្ស.setWindowTitle(“ផ្ទាំងប្រយោគ”)
សិស្ស.ប្រអប់ទំហំឈរ = QVBoxLayout()
សិស្ស.ផ្ទាំងប្រយោគ = QLineEdit()
សិស្ស.ប្រអប់ទំហំឈរ.addWidget(សិស្ស.ផ្ទាំងប្រយោគ)
សិស្ស.setLayout(សិស្ស.ប្រអប់ទំហំឈរ)
កម្មវិធី = QApplication(sys.argv)
បង្អួច = រូបមេ()
កម្មវិធី.setFont(QFont(‘Khmer OS’, 11))
បង្អួច.show()
កម្មវិធី.exec_()
import sys
from PyQt4.QtCore import*
from PyQt4.QtGui import*
class រូបមេ(QWidget):
def __init__(សិស្ស):
QWidget.__init__(សិស្ស)
សិស្ស.setWindowTitle(“ផ្ទាំងប្រយោគ”)
សិស្ស.ប្រអប់ទំហំឈរ = QVBoxLayout()
សិស្ស.ផ្ទាំងប្រយោគ = QLineEdit()
សិស្ស.ប្រអប់ទំហំឈរ.addWidget(សិស្ស.ផ្ទាំងប្រយោគ)
សិស្ស.setLayout(សិស្ស.ប្រអប់ទំហំឈរ)
កម្មវិធី = QApplication(sys.argv)
បង្អួច = រូបមេ()
កម្មវិធី.setFont(QFont(‘Khmer OS’, 11))
បង្អួច.show()
កម្មវិធី.exec_()

សិស្ស.ផ្ទាំងប្រយោគ = QLineEdit() គឺជាការយកថ្នាក់ឈ្មោះ QLineEdit មកប្រើដើម្បីបង្កើតផ្ទាំងប្រយោគមួយមានឈ្មោះថា ផ្ទាំងប្រយោគ ។
ស្ថាបនិកនៃថ្នាក់ QLineEdit
ស្ថាបនិកនៃថ្នាក់ឈ្មោះ QLineEdit មានទម្រង់ដូចខាងក្រោមនេះ៖
- __init__ (self, QWidget parent = None)
- __init__ (self, QString, QWidget parent = None)
- QString : គឺជាដំណាងចាំទទួលយកដំណឹងដែលជាកម្រងអក្សរត្រូវលេចឡើងនៅលើផ្ទាំងប្រយោគត្រូវបង្កើត។
ពិនិត្យកម្មវិធីខាងក្រោមនេះ៖
import sys
from PyQt4.QtCore import*
from PyQt4.QtGui import*
class រូបមេ(QWidget):
def __init__(សិស្ស):
QWidget.__init__(សិស្ស)
សិស្ស.setWindowTitle(“ផ្ទាំងប្រយោគ”)
សិស្ស.ប្រអប់ទំហំឈរ = QVBoxLayout()
សិស្ស.ផ្ទាំងប្រយោគ = QLineEdit(“តើអ្នកឈ្មោះអ្វីដែរ?”)
សិស្ស.ប្រអប់ទំហំឈរ.addWidget(សិស្ស.ផ្ទាំងប្រយោគ)
សិស្ស.setLayout(សិស្ស.ប្រអប់ទំហំឈរ)
កម្មវិធី = QApplication(sys.argv)
បង្អួច = រូបមេ()
កម្មវិធី.setFont(QFont(‘Khmer OS’, 11))
បង្អួច.show()
កម្មវិធី.exec_()

សិស្ស.ផ្ទាំងប្រយោគ = QLineEdit(“តើអ្នកឈ្មោះអ្វីដែរ?”) គឺជាការយកថ្នាក់ឈ្មោះ QLineEdit មកប្រើដើម្បីបង្កើតផ្ទាំងប្រយោគមួយដែលមានកម្រងអក្សរ “តើអ្នកឈ្មោះអ្វី?” នៅក្នុងនៅរួចជាស្រេច។
វិធីសំខាន់ៗនៃថ្នាក់ QLineEdit
វិធីសំខាន់ៗនៃថ្នាក់ឈ្មោះ QLineEdit មានដូចខាងក្រោមនេះ៖
- setEchoMode(self, EchoMode) : គឺជាវិធីប្រើសម្រាប់កំណត់ប្រភេទនៃផ្ទាំងប្រយោគ។
- EchoMode : គឺជាដំណាងចាំទទួលយកដំណឹងដែលជាដំណឹងណាមួយក្នុងចំណោមដំណឹងដូចខាងក្រោមនេះ៖
- QLineEdit.Normal : គឺជាដំណឹងដែលធ្វើឲ្យផ្ទាំងប្រយោគមានសភាពធម្មតា
- QLineEdit.NoEho : គឺជាដំណឹងដែលធ្វើឲ្យផ្ទាំងប្រយោគមិនបង្ហាញអ្វីទាំងអស់នៅលើនោះ
- QLineEdit.Password : គឺជាដំណឹងដែលធ្វើឲ្យផ្ទាំងប្រយោគបង្ហាញអត្ថបទមានលក្ខណៈជាពាក្យសម្ងាត់
- QLineEdit.PasswordEchoOnEdit : គឺជាដំណឹងដែលធ្វើឲ្យផ្ទាំងប្រយោគបង្ហាញប្រយោគមានលក្ខណៈជាពាក្យសម្ងាត់ឬមានលក្ខណៈធម្មតានៅពេលដែលប្រយោគត្រូវកែប្រែ។
ពិនិត្យកម្មវិធីខាងក្រោមនេះ៖
import sys
from PyQt4.QtCore import*
from PyQt4.QtGui import*
class រូបមេ(QWidget):
def __init__(សិស្ស):
QWidget.__init__(សិស្ស)
សិស្ស.setWindowTitle(“ផ្ទាំងប្រយោគ”)
សិស្ស.ប្រអប់ទំហំដេក = QHBoxLayout()
សិស្ស.ផ្លាក = QLabel(‘ពាក្យសម្ងាត់:’)
សិស្ស.ផ្ទាំងប្រយោគ = QLineEdit()
សិស្ស.ផ្ទាំងប្រយោគ.setEchoMode(QLineEdit.Password)
សិស្ស.ប្រអប់ទំហំដេក.addWidget(សិស្ស.ផ្លាក)
សិស្ស.ប្រអប់ទំហំដេក.addWidget(សិស្ស.ផ្ទាំងប្រយោគ)
សិស្ស.setLayout(សិស្ស.ប្រអប់ទំហំដេក)
កម្មវិធី = QApplication(sys.argv)
បង្អួច = រូបមេ()
កម្មវិធី.setFont(QFont(‘Khmer OS’, 11))
បង្អួច.show()
កម្មវិធី.exec_()

សិស្ស.ផ្ទាំងប្រយោគ.setEchoMode(QLineEdit.Password) គឺជាការយកវិធីឈ្មោះ setEhoMode មកប្រើដើម្បីធ្វើឲ្យផ្ទាំងប្រយោគឈ្មោះ ផ្ទាំងប្រយោគ ក្លាយទៅជាផ្ទាំងប្រយោគនៃពាក្យសម្ងាត់។
- QString text (self) : គឺជាវិធីប្រើសម្រាប់ចម្លងយកឃ្លាប្រយោគដែលត្រូវបានសរសេរនៅលើផ្ទាំងប្រយោគ។
- setText (self, QString) : គឺជាវិធីប្រើសម្រាប់កំណត់យកប្រយោគណាមួយជាប្រយោគមាននៅក្នុងផ្ទាំងប្រយោគ។
រលកសញ្ញា
រលកសញ្ញាសំខាន់ៗដែលអាចត្រូវផ្សាយចេញពីផ្ទាំងប្រយោគ គឺជារលកសញ្ញាមានដូចខាងក្រោមនេះ៖
- “returnPressed()” : គឺជារលកសញ្ញាដែលត្រូវផ្សាយចេញនៅពេលណាដែលខ្ទង់ Enter ត្រូវបានចុចនៅក្នុងផ្ទាំងប្រយោគ។
- “textChanged(QString)” : គឺជារលកសញ្ញាដែលត្រូវផ្សាយចេញនៅពេលណាដែលប្រយោគនៅក្នុងផ្ទាំងប្រយោគត្រូវបានផ្លាស់ប្តូរ។ ដំណឹងដែលត្រូវផ្សាយចេញទៅជាមួយនឹងរលកសញ្ញានោះ គឺជាកម្រងអក្សរដែលជាប្រយោគមាននៅក្នុងផ្ទាំងប្រយោគ។
- “textEdited(QString)” : គឺជារលកសញ្ញាដែលត្រូវផ្សាយចេញនៅពេលណាប្រយោគនៅក្នុងផ្ទាំងប្រយោគត្រូវបានផ្លាស់ប្តូរ។ ដំណឹងដែលត្រូវផ្សាយចេញទៅជាមួយនឹងរលកសញ្ញានេះ គឺជាកម្រងអក្សរដែលមាននៅក្នុងផ្ទាំងប្រយោគ។ រលកសញ្ញានេះត្រូវផ្សាយចេញ តែនៅពេលណាដែលប្រយោគនៅក្នុងផ្ទាំងប្រយោគត្រូវបានផ្លាស់ប្តូរដោយការសរសេផ្ទាល់ដៃតែប៉ុណ្ណោះ គឺខុសពីរលកសញ្ញាឈ្មោះ “textChanged(QString)” ដែលត្រូវផ្សាយចេញនៅគ្រប់ពេលវេលាដែលប្រយោគនៅក្នុងផ្ទាំងប្រយោគត្រូវបានផ្លាស់ប្តូរ ទោះបីជាការផ្លាស់ប្តូរនោះត្រូវធ្វើឡើងដោយការសរសេរដោយដៃ ឬដោយការសរសេរកម្មវិធីក៍ដោយ។
ពិនិត្យកម្មវិធីខាងក្រោមនេះ៖
import sys
from PyQt4.QtCore import*
from PyQt4.QtGui import*
class រូបមេ(QWidget):
def __init__(សិស្ស):
QWidget.__init__(សិស្ស)
សិស្ស.setWindowTitle(“ផ្ទាំងប្រយោគ”)
ប្រអប់ទំហំឈរ = QVBoxLayout()
សិស្ស.ផ្លាក = [ ]
សិស្ស.ផ្ទាំងប្រយោគ = [ ]
ប្រអប់ទំហំដេក = [ ]
លេខរៀង = 0
for ស្លាក in [‘ឈ្មោះអ្នកប្រើ:’, ‘ពាក្យសម្ងាត់:’]:
សិស្ស.ផ្លាក.append(QLabel(ស្លាក))
សិស្ស.ផ្ទាំងប្រយោគ.append(QLineEdit())
if លេខរៀង == 1:
សិស្ស.ផ្ទាំងប្រយោគ[លេខរៀង].setEchoMode(QLineEdit.Password)
សិស្ស.ផ្លាក.append(QLabel())
ប្រអប់ទំហំដេក.append(QHBoxLayout())
ប្រអប់ទំហំដេក[លេខរៀង].addWidget(សិស្ស.ផ្លាក[លេខរៀង], Qt.AlignRight)
ប្រអប់ទំហំដេក[លេខរៀង].addWidget(សិស្ស.ផ្ទាំងប្រយោគ[លេខរៀង])
ប្រអប់ទំហំឈរ.addLayout(ប្រអប់ទំហំដេក[លេខរៀង])
សិស្ស.connect(សិស្ស.ផ្ទាំងប្រយោគ[លេខរៀង], SIGNAL(“returnPressed()” ), សិស្ស.ចុចខ្ទង់Enter)
លេខរៀង += 1
ប្រអប់ទំហំឈរ.addWidget(សិស្ស.ផ្លាក[2])
សិស្ស.setLayout(ប្រអប់ទំហំឈរ)
def ចុចខ្ទង់Enter(សិស្ស):
អត្ថបទ = ”
for ផ្ទាំងប្រយោគ in សិស្ស.ផ្ទាំងប្រយោគ:
if សិស្ស.ផ្ទាំងប្រយោគ.index(ផ្ទាំងប្រយោគ) == 0:
អត្ថបទ += “ឈ្មោះអ្នកប្រើគឺ៖ ” + ផ្ទាំងប្រយោគ.text() + ‘\n’
else:
អត្ថបទ += “ពាក្យសម្ងាត់គឺ៖ ” + ផ្ទាំងប្រយោគ.text()
សិស្ស.ផ្លាក[2].setText(អត្ថបទ)
កម្មវិធី = QApplication(sys.argv)
បង្អួច = រូបមេ()
កម្មវិធី.setFont(QFont(‘Khmer OS’, 11))
បង្អួច.show()
កម្មវិធី.exec_()

សិស្ស.connect(សិស្ស.ផ្ទាំងប្រយោគ[លេខរៀង], SIGNAL(“returnPressed()” ), សិស្ស.ចុចខ្ទង់Enter) គឺជាការតភ្ជាប់រលកសញ្ញាឈ្មោះ “returnPressed()” ទៅនឹងរន្ធដោតដែលជាវិធីមានឈ្មោះថា ចុចខ្ទង់Enter នៅពេលណាខ្ទង់ Enter ត្រូវបានចុចនៅក្នុងផ្ទាំងប្រយោគណាមួយ។
អត្ថបទ += “ឈ្មោះអ្នកប្រើគឺ៖ ” + ផ្ទាំងប្រយោគ.text() + ‘\n’ គឺជាបញ្ជាដែលនៅក្នុងនោះមានការតម្រូវឲ្យយកវិធីឈ្មោះ text មកប្រើក្នុងគោលបំណងចម្លងយកប្រយោគដែលមាននៅក្នុងផ្ទាំងប្រយោគឈ្មោះ ផ្ទាំងប្រយោគ ។
អត្ថបទ += “ពាក្យសម្ងាត់គឺ៖ ” + ផ្ទាំងប្រយោគ.text() គឺជាបញ្ជាដែលនៅក្នុងនោះមានការតម្រូវឲ្យយកវិធីឈ្មោះ text មកប្រើក្នុងគោលបំណងចម្លងយកប្រយោគដែលមាននៅក្នុងផ្ទាំងប្រយោគឈ្មោះ ផ្ទាំងប្រយោគ ។