Rakudo (Wikipedie), tj. překladač programovacího jazyka Raku (Wikipedie), byl vydán ve verzi 2023.05. Programovací jazyk Raku byl dříve znám pod názvem Perl 6.
Linux Foundation Europe představila projekt RISE (RISC-V Software Ecosystem), jehož cílem je urychlit vývoj open source softwaru pro architekturu RISC-V.
Armbian, tj. linuxová distribuce založená na Debianu a Ubuntu pro jednodeskové počítače na platformě ARM, byl vydán ve verzi 23.05. Přehled novinek v Changelogu.
Minulý týden proběhla openSUSE Conference 2023. Mimo jiné bylo oznámeno přejmenování systému MicroOS Desktop. MicroOS Desktop GNOME byl přejmenován na openSUSE Aeon a MicroOS Desktop Plasma na openSUSE Kalpa.
Thom Holwerda z OSnews si všímá, že vývoj operačního systému MINIX je prakticky mrtvý. Jeho hlavní autor, Andrew Tanenbaum, formálně odešel do důchodu v roce 2014 a příspěvky do kódu v následujících letech vůbec ustaly. Stav projektu shrnuje diskuze z roku 2020. Sice vyšlo najevo, že Intel používal MINIX v Management Engine, ale změny nezveřejňoval.
Google Chrome 114 byl prohlášen za stabilní. Nejnovější stabilní verze 114.0.5735.90 přináší řadu oprav a vylepšení (YouTube). Vypíchnut je CHIPS (Cookies Having Independent Partitioned State). Opraveno bylo 16 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.
Byly zveřejněny prezentace a videozáznamy přednášek a fotografie z česko-slovenského setkání poskytovatelů přístupu k internetu, provozovatelů telekomunikačních sítí, registrátorů domén a provozovatelů počítačových sítí a technických nadšenců CSNOG 2023 (Czech and Slovak Network Operators Group) konaného 16. a 17. května ve Zlínu.
Soutěž amatérských robotů Robotický den 2023 proběhne v neděli 4. června v Kongresovém centru Praha.
V Tchaj-peji probíhá počítačový veletrh COMPUTEX 2023. Firmy představují své novinky. Nvidia například superpočítač DGX GH200 AI.
Vyšla nová verze XMPP (Jabber) klienta Gajim. Nejvýznamnější novinkou je integrace OMEMO pluginu přímo do jádra aplikace, takže již není třeba plugin samostatně instalovat. Přehled dalších novinek je dostupný na oficiálních stránkách. Gajim je vytvořen v jazyce Python s využitím knihovny GTK a vedle Linuxu jej lze vyzkoušet i na platformách MacOS a Windows.
#!/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: