我如何从pyqt调用python代码,如下面的c代码?os.system(' ./txt + str(self.fname))

时间:2015-03-26 18:05:45

标签: python pyqt

import sys,time,os
from PyQt4 import QtGui
import sys
import random,string
from PyQt4 import QtCore
from PIL import Image


class Example(QtGui.QWidget):

        def __init__(self):
        super(Example, self).__init__()

        self.initUI()

        def initUI(self):  
        self.label1 = QtGui.QLabel(self)   
        self.label2 = QtGui.QLabel(self) 
        self.button = QtGui.QPushButton('Browse', self)
        self.button.clicked.connect(self.showDialog)
        self.button.move(250,65)

        self.button2=QtGui.QPushButton('Scrambled',self)
        self.button2.clicked.connect(self.s)
        self.button2.move(90,650)
        self.resize(800, 500)
        self.button3 = QtGui.QPushButton('Descrambled', self)
        self.button3.clicked.connect(self.de)
        self.button3.move(1000,650)


        self.setGeometry(300, 300, 1500, 1500)
        self.setWindowTitle('Select Image')
        self.le = QtGui.QLineEdit(self)
            self.le.move(90, 65)
        self.show()



        def showDialog(self):
        self.fname = QtGui.QFileDialog.getOpenFileName(self, 'Open file', 
                '/home/merin/mainprj/1')
        print '**********************'

        self.le.setText(str(self.fname))
        self.hbox = QtGui.QHBoxLayout(self)
        myPixmap = QtGui.QPixmap(self.fname)
        self.label1.setPixmap(myPixmap)
        self.hbox.addWidget(self.label1)
            self.setLayout(self.hbox)
        self.move(1500,150)


        def s(self):
        os.system('$python scramble.py'+str(self.fname))
        myPixmap2 = QtGui.QPixmap(self.fname)
        print type(self.fname)      
        self.label2.setPixmap(myPixmap2)
        self.hbox.addWidget(self.label2)
            self.setLayout(self.hbox)
        self.move(1500,150)


        def de(self):
        os.system('$python scramble.py '+str(self.fname))
        myPixmap2 = QtGui.QPixmap(self.fname)
        print type(self.fname)      
        self.label2.setPixmap(myPixmap2)
        self.hbox.addWidget(self.label2)
            self.setLayout(self.hbox)
        self.move(1500,150)



def main():

    app = QtGui.QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())


if __name__ == '__main__':
    main()

如何从pyqt调用python代码,如下面的c代码?

os.system('./txt+str(self.fname)) 

1 个答案:

答案 0 :(得分:0)

exec / eval或制作翻译并通过翻译发送文本。

注意:这些操作不安全,可能会在代码中留下漏洞。

exec("some code")

使用更安全的ast文字eval。

import ast

ast.literal_eval("somecode")

制作python解释器https://docs.python.org/3.4/library/code.html。您还需要查找