[英]How to display an image and prompt for a short string in Python from command line
(我對整個問題進行了編輯以使其更加清晰)
你好,
我從未與Python GUI庫有任何關系。 我知道這里有很多文檔,但是由於我只需要一個摘要,因此我不希望深入文檔中尋找方法來做到這一點。 如果要編寫一個GUI程序,我肯定會這樣做,但這只是我的臨時腳本的幾行內容。
對於我(GUI noob)來說,用下面的代碼在Python中編寫最簡單,最直接的方法是什么? 更少的台詞=更多的幸福。
依賴項或僅Linux解決方案都可以。 我需要在Xubuntu機器上運行它。 請提供任何代碼段? 我相信這對於Python GUI領域的技術人員來說只需5分鍾。 我需要研究圖書館文檔的負載。 謝謝!
下面是一個或多或少符合規范的最小Python腳本。
它需要安裝python2和pyqt4軟件包,並且無法與python3一起使用(盡管在必要時可以很容易地對其進行調整)。
如果用戶鍵入有效的標題並按Enter,則腳本將返回狀態代碼0,並將標題打印到stdout; 否則,如果用戶輸入了無效的標題(僅限空白或空白),或者只是不執行任何操作而關閉對話框,則腳本將返回狀態代碼1且不打印任何內容。
bash使用示例 :
$ CAPTION=$(python imgviewer.py image.jpg)
$ [ $? -eq 0 ] && echo $CAPTION
imgviewer.py :
import sys, os
from PyQt4 import QtGui, QtCore
class Dialog(QtGui.QDialog):
def __init__(self, path):
QtGui.QDialog.__init__(self)
self.viewer = QtGui.QLabel(self)
self.viewer.setMinimumSize(QtCore.QSize(400, 400))
self.viewer.setScaledContents(True)
self.viewer.setPixmap(QtGui.QPixmap(path))
self.editor = QtGui.QLineEdit(self)
self.editor.returnPressed.connect(self.handleReturnPressed)
layout = QtGui.QVBoxLayout(self)
layout.addWidget(self.viewer)
layout.addWidget(self.editor)
def handleReturnPressed(self):
if self.editor.text().simplified().isEmpty():
self.reject()
else:
self.accept()
if __name__ == '__main__':
app = QtGui.QApplication(sys.argv)
args = app.arguments()[1:]
if len(args) == 1:
dialog = Dialog(args[0])
if dialog.exec_() == QtGui.QDialog.Accepted:
print dialog.editor.text().simplified().toLocal8Bit().data()
sys.exit(0)
else:
print 'ERROR: wrong number of arguments'
sys.exit(1)
有幾個不錯的Python GUI庫。 python內置的“標准”庫是tkinter
: http : //wiki.python.org/moin/TkInter 。 有人說wxPython
更加強大和直接: http : //www.wxpython.org/ 。
我認為您可以從wxPython開始,它們有許多您可以深入了解的教程和示例(只需運行DEMO)。
他們有一個名為“ ImageBrowser”的示例,這可能是一個很好的起點。
關於不同應用之間的通信,可以使用“管道”和“重定向”進行通信。 但是,如果一切都是用python編寫的,我認為這是錯誤的方法,您可以在python腳本中顯示圖像形式並在內部獲取結果。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.