Portál AbcLinuxu, 12. května 2025 08:13
#!/usr/bin/python import sys import os import string from PyQt4 import QtGui, QtCore class MainWindow(QtGui.QMainWindow): def __init__(self): QtGui.QMainWindow.__init__(self) self.resize(400, 400) self.setWindowTitle('segmentation') #status bar self.statusBar().showMessage('Ready') #exit exit = QtGui.QAction('Exit', self) exit.setStatusTip('Exit application') self.connect(exit, QtCore.SIGNAL('triggered()'), self.close) #open bmp openBMP= QtGui.QAction('Open BMP', self) openBMP.setStatusTip('Open directory with BMP images') self.connect(openBMP, QtCore.SIGNAL('triggered()'), self.BMP) #menu bar menubar = self.menuBar() file = menubar.addMenu('&File') file.addAction(exit) file.addAction(openBMP) def BMP(self): print "open directory with bmp images" dirname = QtGui.QFileDialog.getExistingDirectory(self,"Open Directory with bmp images",'./',QtGui.QFileDialog.ShowDirsOnly) print "choosen directory: ",dirname file_in_dir=os.listdir(str(dirname)) file_prefix=[] for i in range (len(file_in_dir)): print "file laoded: ", file_in_dir[i] prefix=string.split(file_in_dir[i],".") if (prefix[0] in file_prefix)==False: file_prefix.append(prefix[0]) print "number loaded images from directory: ",i+1 self.file_prefix=file_prefix app = QtGui.QApplication(sys.argv) main = MainWindow() main.show() sys.exit(app.exec_())
if prefix[0] not in file_prefix:
ne
if (prefix[0] in file_prefix)==False:
A když už jsme u toho, asi bych celou tuhle smyčku napsal jako set([item.split('.')[0] for item in file_prefix])
. Sice dostaneš set a ne list, ale ten můžeš iterovat taky, a přinejhorším ho vždycky můžeš převést zpět na list pomocí list().
Dalo by se pokračovat, ale taky už jsem při nedělním večeru línej #!/usr/bin/python import sys import os import string from PyQt4 import QtGui, QtCore class MainWindow(QtGui.QMainWindow): def __init__(self): QtGui.QMainWindow.__init__(self) self.resize(400, 400) self.setWindowTitle('segmentation') #status bar self.statusBar().showMessage('Ready') #exit exit = QtGui.QAction('Exit', self) exit.setStatusTip('Exit application') self.connect(exit, QtCore.SIGNAL('triggered()'), self.close) #open bmp openBMP= QtGui.QAction('Open BMP', self) openBMP.setStatusTip('Open directory with BMP images') self.connect(openBMP, QtCore.SIGNAL('triggered()'), self.BMP) #menu bar menubar = self.menuBar() file = menubar.addMenu('&File') file.addAction(exit) file.addAction(openBMP) def BMP(self): print "open directory with bmp images" dirname = QtGui.QFileDialog.getExistingDirectory(self,"Open Directory with bmp images",'./',QtGui.QFileDialog.ShowDirsOnly) print "choosen directory: ",dirname file_in_dir=os.listdir(str(dirname)) file_prefix=[] for i in range (len(file_in_dir)): print "file laoded: ", file_in_dir[i] prefix=string.split(file_in_dir[i],".") if (prefix[0] in file_prefix)==False: file_prefix.append(prefix[0]) print "number loaded images from directory: ",i+1 self.file_prefix=file_prefix self.ChBox_prefix=CheckBox_BMP() print self.ChBox_prefix.create_values(self) class CheckBox_BMP(QtGui.QWidget): def __init__(self): QtGui.QWidget.__init__(self) ChB_BMPWidget=QtGui.QWidget(self) self.setWindowTitle('Choose prefix') self.setGeometry(300, 300, 210, 60) self.show() def create_values(self,parent): ChB_grid=QtGui.QGridLayout(self) ChB_BMP_Label=QtGui.QLabel("Choose prefix: ",self) ChB_grid.addWidget(ChB_BMP_Label,0,0) self.cb=[] for i in range(len(parent.file_prefix)): self.cb.append(QtGui.QRadioButton(parent.file_prefix[i],self)) self.cb[i].setFocusPolicy(QtCore.Qt.NoFocus) ChB_grid.addWidget(self.cb[i],i+1,0) print "loaded prefix:",parent.file_prefix self.cb[0].setChecked(True) OK_button=QtGui.QPushButton("OK",self) ChB_grid.addWidget(OK_button,i+2,1,QtCore.Qt.AlignRight) self.connect(OK_button,QtCore.SIGNAL("clicked()"),self.what_prefix) def what_prefix(self): i=0 while (self.cb[i].isChecked()==False): i=i+1 print "choosen prefix: ",i self.close() app = QtGui.QApplication(sys.argv) main = MainWindow() main.show() sys.exit(app.exec_())
self.ChBox_prefix=CheckBox_BMP(self)
. Potom v instanci CheckBox_BMP získaš odkaz na MainWindows pomocí metody self.parent(), a můžeš napsat např. self.parent().chosen_prefix = self.cb[i].text()
, a v MainWindow si pak přečteš prefix přes self.chosen_prefix
. Ale pořád je to strašně prasácký #!/usr/bin/python import sys import os from PyQt4 import QtGui, QtCore class MainWindow(QtGui.QMainWindow): def __init__(self): QtGui.QMainWindow.__init__(self) self.resize(400, 400) self.setWindowTitle('segmentation') #status bar self.statusBar().showMessage('Ready') #exit exit = QtGui.QAction('Exit', self) exit.setStatusTip('Exit application') self.connect(exit, QtCore.SIGNAL('triggered()'), self.close) #open bmp openBMP= QtGui.QAction('Open BMP', self) openBMP.setStatusTip('Open directory with BMP images') self.connect(openBMP, QtCore.SIGNAL('triggered()'), self.BMP2) #menu bar menubar = self.menuBar() file = menubar.addMenu('&File') file.addAction(exit) file.addAction(openBMP) self.chosen_prefix = None def BMP2(self): print "open directory with bmp images" dirname = QtGui.QFileDialog.getExistingDirectory(self,"Open Directory with bmp images",'./',QtGui.QFileDialog.ShowDirsOnly) print "choosen directory: ",dirname file_in_dir=os.listdir(unicode(dirname)) file_prefix = list(set([item.split('.')[0] for item in file_in_dir])) print "number loaded images from directory: ",len(file_in_dir) chosen_prefix, dialog_status = QtGui.QInputDialog.getItem(self, u'Choose prefix', u'Choose prefix', file_prefix, 0, False) if dialog_status: self.chosen_prefix = chosen_prefix print "Chosen prefix:", self.chosen_prefix app = QtGui.QApplication(sys.argv) main = MainWindow() main.show() sys.exit(app.exec_())
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.