def __init__(self, parent=None): super(CuriWidget, self).__init__(parent, Qt.FramelessWindowHint | Qt.WindowSystemMenuHint) self.addCustomAction() w = qApp.desktop().screenGeometry().width() h = qApp.desktop().screenGeometry().height() side = round((8 / 9) * min(w / cols, h / rows)) self.setFixedSize(side * QSize(cols, rows)) self.thread = SoundThread(self) self.dragPosition = QPoint() self.button = None self.setWindowIcon(QIcon(":curielements")) region = QRegion(QRect(0, 0, 2 * side, 2 * side), QRegion.Ellipse) region += QRegion(QRect(side, 0, 8 * side, 15 * side)) region += QRegion(QRect(0, side, side, 13 * side)) region += QRegion(QRect(0, 13 * side, 2 * side, 2 * side), QRegion.Ellipse) region += QRegion(QRect(9 * side, side, side, 14 * side)) region += QRegion(QRect(8 * side, 0, 2 * side, 2 * side), QRegion.Ellipse) region += QRegion(QRect(10 * side, 2 * side, 19 * side, 13 * side)) region += QRegion(QRect(28 * side, 2 * side, 2 * side, 2 * side), QRegion.Ellipse) region += QRegion(QRect(29 * side, 3 * side, side, 11 * side)) region += QRegion(QRect(28 * side, 13 * side, 2 * side, 2 * side), QRegion.Ellipse) self.setMask(region) self.atoms = Atoms(self) self.atoms.setGeometry( QRect(1.5 * side, 1.5 * side, 7 * side, 7 * side)) offset = QPoint(10 * side, 3 * side) file = QFile(":elements") file.open(QFile.ReadOnly | QFile.Text) colors = [blue, yellow] self.btns = [] while not file.atEnd(): x, y, name, symbol, electron, description, description2, _ = file.readLine( ).split(',') coordinate = QPoint(int(x), int(y)) text = bytearray(name).decode() btn = ElementButton(QSize(side, side), colors, int(electron), bytearray(symbol).decode(), text, self) btn.move(offset + coordinate * side) btn.clicked.connect(self.button_clicked) self.btns.append(btn) self.imageDescription = DescriptionButton(side * QSize(7, 4.5), blue, self) self.imageDescription.move(1.5 * side, 9 * side) btnSound = DescriptionButton(side * QSize(2, 2), blue, self) btnSound.move(11 * side, 12 * side) btnSound.updateBackground(":soundOn") btnSound.clicked.connect(self.sound_clicled)
def __openByIODevice(self, fileName): ##用QFile打开文件 fileDevice = QFile(fileName) if not fileDevice.exists(): #判断文件是否存在 return False if not fileDevice.open(QIODevice.ReadOnly | QIODevice.Text): return False ###整个文件一次性读取的方式,可行 ## qtBytes=fileDevice.readAll() #返回QByteArray类型 ## pyBytes=bytes(qtBytes.data()) # 将QByteArray转换为bytes类型 ## text=pyBytes.decode("utf-8") #用utf-8编码为字符串 ## self.ui.textEdit.setPlainText(text) ## 逐行读取方式,可行 try: self.ui.textEdit.clear() while not fileDevice.atEnd(): qtBytes = fileDevice.readLine() # 返回QByteArray类型 pyBytes = bytes(qtBytes.data()) # QByteArray转换为bytes类型 lineStr = pyBytes.decode("utf-8") #bytes转换为str型 lineStr = lineStr.strip() #去除结尾增加的空行 self.ui.textEdit.appendPlainText(lineStr) finally: fileDevice.close() return True
def __parseData(self, dataFile, loadPrivateDomains=False): """ Private method to parse TLD data. @param dataFile name of the file containing the TLD data @type str @param loadPrivateDomains flag indicating to load private domains @type bool @return flag indicating success @rtype bool """ # start with a fresh dictionary self.__tldDict = collections.defaultdict(list) file = QFile(dataFile) if not file.open(QFile.ReadOnly | QFile.Text): return False seekToEndOfPrivateDomains = False while not file.atEnd(): line = bytes(file.readLine()).decode("utf-8").strip() if not line: continue if line.startswith("."): line = line[1:] if line.startswith("//"): if "===END PRIVATE DOMAINS===" in line: seekToEndOfPrivateDomains = False if (not loadPrivateDomains and "===BEGIN PRIVATE DOMAINS===" in line): seekToEndOfPrivateDomains = True continue if seekToEndOfPrivateDomains: continue # only data up to the first whitespace is used line = line.split(None, 1)[0] if "." not in line: self.__tldDict[line].append(line) else: key = line[line.rfind(".") + 1:] self.__tldDict[key].append(line) return self.isDataLoaded()
def __openByIODevice(self, fileName): fileDevice = QFile(fileName) if not fileDevice.exists(): return False if not fileDevice.open(QIODevice.ReadOnly | QIODevice.Text): return False try: self.ui.textEdit.clear() while not fileDevice.atEnd(): qtBytes = fileDevice.readLine() pyBytes = bytes(qtBytes.data()) lineStr = pyBytes.decode("utf-8") lineStr = lineStr.strip() self.ui.textEdit.appendPlainText(lineStr) finally: fileDevice.close() return True
def modelFromFile(self, fileName): f = QFile(fileName) if not f.open(QFile.ReadOnly): return QStringListModel(self.completer) QApplication.setOverrideCursor(QCursor(Qt.WaitCursor)) words = [] while not f.atEnd(): line = f.readLine().trimmed() if line.length() != 0: try: line = str(line, encoding='ascii') except TypeError: line = str(line) words.append(line) QApplication.restoreOverrideCursor() return QStringListModel(words, self.completer)
def open(self): self.offerSave() path = (QFileInfo(self.filename).path() if self.filename else ".") fname,filetype = QFileDialog.getOpenFileName(self, "Page Designer - Open", path, "Page Designer Files (*.pgd)") if not fname: return self.filename = fname fh = None try: fh = QFile(self.filename) if not fh.open(QIODevice.ReadOnly): raise IOError(str(fh.errorString())) items = self.scene.items() while items: item = items.pop() self.scene.removeItem(item) del item self.addBorders() stream = QDataStream(fh) stream.setVersion(QDataStream.Qt_5_7) magic = stream.readInt32() if magic != MagicNumber: raise IOError("not a valid .pgd file") fileVersion = stream.readInt16() if fileVersion != FileVersion: raise IOError("unrecognised .pgd file version") while not fh.atEnd(): self.readItemFromStream(stream) except IOError as e: QMessageBox.warning(self, "Page Designer -- Open Error", "Failed to open {0}: {1}".format(self.filename, e)) finally: if fh is not None: fh.close() global Dirty Dirty = False
def loadFromFile(self, fileName): f = QFile(fileName) if not f.open(QFile.ReadOnly): model = QStringListModel() self._completer.setModel(model) QApplication.setOverrideCursor(QCursor(Qt.WaitCursor)) words = [] while not f.atEnd(): line = f.readLine().trimmed() if line.length() != 0: try: line = str(line, encoding='utf-8') except TypeError: line = str(line) words.append(line) QApplication.restoreOverrideCursor() model = QStringListModel(words) self._completer.setModel(model)
file = QFile('/Users/junahyung/emomovie/SimpsonSen.mp4') print(1) isOpen = file.open(QIODevice.ReadOnly) print(2) buffer = QBuffer() buffer.open(QIODevice.ReadWrite) print(3) player.setMedia(QMediaContent(), buffer) print(4) if isOpen: while not file.atEnd(): temp = file.readLine() # temp = QByteArray.fromBase64(temp) buffer.write(temp) print(5) videoWidget = QVideoWidget() print(6) player.setVideoOutput(videoWidget) print(7) videoWidget.show() print(8) player.play() while(player.MediaStatus()==QMediaPlayer.UnknownMediaStatus): print("a")
def ConverttxtToPack(in1,out1): dsoIn = QFile(in1) if dsoIn.open(QIODevice.ReadOnly | QIODevice.Text) is False: return dsoOut=QFile(out1) if dsoOut.open(QIODevice.WriteOnly) is False: return totalRecords = 0 while (dsoIn.atEnd() is False): dsoIn.readLine() totalRecords+=1 dsoIn.seek(0) dsoOutStream = QDataStream(dsoOut) dsoOutStream.setVersion(QDataStream.Qt_5_2) readOk = 0 dsoOutStream.writeQString('3.11') dsoOutStream.writeQString('standard') while (dsoIn.atEnd() is False): record = str(dsoIn.readLine(), encoding='utf-8') vp = re.match("ersion\s+([\d\.]+)\s+(\w+)",record) if (record.startswith("//") or record.startswith("#")): totalRecords-=1 continue lis=record.split('\t') try: # if 1: id = int(lis[0]) ra = float((lis[1]).strip()) dec = float((lis[2]).strip()) bMag = float(lis[3]) vMag = float(lis[4]) oType = (lis[5]).strip() mType = (lis[6]).strip() majorAxisSize = float(lis[7]) minorAxisSize = float(lis[8]) orientationAngle = int(float(lis[9])) z = float(lis[10]) zErr = float(lis[11]) plx = float(lis[12]) plxErr = float(lis[13]) dist = float(lis[14]) distErr = float(lis[15]) NGC = int(lis[16]) IC = int(lis[17]) M = int(lis[18]) C = int(lis[19]) B = int(lis[20]) Sh2 = int(lis[21]) VdB = int(lis[22]) RCW = int(lis[23]) LDN = int(lis[24]) LBN = int(lis[25]) Cr = int(lis[26]) Mel = int(lis[27]) PGC = int(lis[28]) UGC = int(lis[29]) Ced = (lis[30]).strip() Arp = int(lis[31]) VV = int(lis[32]) PK = (lis[33]).strip() PNG = (lis[34]).strip() SNRG = (lis[35]).strip() ACO = (lis[36]).strip() HCG = (lis[37]).strip() ESO = (lis[38]).strip() VdBH = (lis[39]).strip() DWB = int(lis[40]) Tr = int(lis[41]) St = int(lis[42]) Ru = int(lis[43]) VdBHa = int(lis[44]) raRad = float(ra) * math.pi / 180 decRad = float(dec) * math.pi / 180 majorAxisSize /= 60 minorAxisSize /= 60 if (bMag <= 0): bMag = 99 if (vMag <= 0): vMag = 99 if oType.upper() in otypedic: nType = otypedic[oType.upper()] else: nType = 36 readOk += 1 dsoOutStream.writeInt(id) dsoOutStream.writeFloat(ra/180*math.pi) dsoOutStream.writeFloat(dec/180*math.pi) dsoOutStream.writeFloat(bMag) dsoOutStream.writeFloat(vMag) dsoOutStream.writeInt(nType) # dsoOutStream.writeUInt64(nType) dsoOutStream.writeQString(mType) dsoOutStream.writeFloat(majorAxisSize) dsoOutStream.writeFloat(minorAxisSize) dsoOutStream.writeInt(orientationAngle) dsoOutStream.writeFloat(z) dsoOutStream.writeFloat(zErr) dsoOutStream.writeFloat(plx) dsoOutStream.writeFloat(plxErr) dsoOutStream.writeFloat(dist) dsoOutStream.writeFloat(distErr) dsoOutStream.writeInt(NGC) dsoOutStream.writeInt(IC) dsoOutStream.writeInt(M) dsoOutStream.writeInt(C) dsoOutStream.writeInt(B) dsoOutStream.writeInt(Sh2) dsoOutStream.writeInt(VdB) dsoOutStream.writeInt(RCW) dsoOutStream.writeInt(LDN) dsoOutStream.writeInt(LBN) dsoOutStream.writeInt(Cr) dsoOutStream.writeInt(Mel) dsoOutStream.writeInt(PGC) dsoOutStream.writeInt(UGC) dsoOutStream.writeQString(Ced) dsoOutStream.writeInt(Arp) dsoOutStream.writeInt(VV) dsoOutStream.writeQString(PK) dsoOutStream.writeQString(PNG) dsoOutStream.writeQString(SNRG) dsoOutStream.writeQString(ACO) dsoOutStream.writeQString(HCG) dsoOutStream.writeQString(ESO) dsoOutStream.writeQString(VdBH) dsoOutStream.writeInt(DWB) dsoOutStream.writeInt(Tr) dsoOutStream.writeInt(St) dsoOutStream.writeInt(Ru) dsoOutStream.writeInt(VdBHa) except: print(record) continue dsoIn.close() dsoOut.flush() dsoOut.close() return
def decodePack2Txt(in1, out1, dem='\t'): dsoIn = QFile(in1) if dsoIn.open(QIODevice.ReadOnly) is False: return OTdic = {} for it in otypedic: if str(otypedic[it]) not in OTdic: OTdic[str(otypedic[it])] = it dsoIn.seek(0) dsoInStream = QDataStream(dsoIn) dsoInStream.setVersion(QDataStream.Qt_5_2) print(dsoInStream.readQString()) print(dsoInStream.readQString()) lines = [] while dsoIn.atEnd() is False: id = dsoInStream.readInt() raRad = dsoInStream.readFloat() decRad = dsoInStream.readFloat() bMag = dsoInStream.readFloat() vMag = dsoInStream.readFloat() nType = dsoInStream.readInt() mType = dsoInStream.readQString() majorAxisSize = dsoInStream.readFloat() minorAxisSize = dsoInStream.readFloat() orientationAngle = dsoInStream.readInt() z = dsoInStream.readFloat() zErr = dsoInStream.readFloat() plx = dsoInStream.readFloat() plxErr = dsoInStream.readFloat() dist = dsoInStream.readFloat() distErr = dsoInStream.readFloat() NGC = dsoInStream.readInt() IC = dsoInStream.readInt() M = dsoInStream.readInt() C = dsoInStream.readInt() B = dsoInStream.readInt() Sh2 = dsoInStream.readInt() VdB = dsoInStream.readInt() RCW = dsoInStream.readInt() LDN = dsoInStream.readInt() LBN = dsoInStream.readInt() Cr = dsoInStream.readInt() Mel = dsoInStream.readInt() PGC = dsoInStream.readInt() UGC = dsoInStream.readInt() Ced = dsoInStream.readQString() Arp = dsoInStream.readInt() VV = dsoInStream.readInt() PK = dsoInStream.readQString() PNG = dsoInStream.readQString() SNRG = dsoInStream.readQString() ACO = dsoInStream.readQString() HCG = dsoInStream.readQString() ESO = dsoInStream.readQString() VdBH = dsoInStream.readQString() DWB = dsoInStream.readInt() Tr = dsoInStream.readInt() St = dsoInStream.readInt() Ru = dsoInStream.readInt() VdBHa = dsoInStream.readInt() ra = float(raRad * 180 / math.pi) dec = float(decRad * 180 / math.pi) majorAxisSize *= 60 minorAxisSize *= 60 if str(nType) in OTdic: oType = OTdic[str(nType)] lis = [ id, ra, dec, bMag, vMag, oType, mType, majorAxisSize, minorAxisSize, orientationAngle, z, zErr, plx, plxErr, dist, distErr, NGC, IC, M, C, B, Sh2, VdB, RCW, LDN, LBN, Cr, Mel, PGC, UGC, Ced, Arp, VV, PK, PNG, SNRG, ACO, HCG, ESO, VdBH, DWB, Tr, St, Ru, VdBHa ] lis = list(str(x) for x in lis) lines.append(dem.join(lis)) writealllines(lines, out1)
def ConverttxtToPack(in1, out1, default_ver='3.13', default_type='standard'): dsoIn = QFile(in1) if dsoIn.open(QIODevice.ReadOnly | QIODevice.Text) is False: return dsoOut = QFile(out1) if dsoOut.open(QIODevice.WriteOnly) is False: return totalRecords = 0 while (dsoIn.atEnd() is False): dsoIn.readLine() totalRecords += 1 dsoIn.seek(0) dsoOutStream = QDataStream(dsoOut) dsoOutStream.setVersion(QDataStream.Qt_5_2) readOk = 0 addedHead = False while (dsoIn.atEnd() is False): record = str(dsoIn.readLine(), encoding='utf-8') vp = re.match("^.*ersion\s+([\d\.]+)\s+(\w+)", record) if vp: print(vp.group(1), vp.group(2)) dsoOutStream.writeQString(vp.group(1)) dsoOutStream.writeQString(vp.group(2)) addedHead = True if (record.startswith("//") or record.startswith("#")): totalRecords -= 1 continue # write when could not get label from txt if not addedHead: dsoOutStream.writeQString(default_ver) dsoOutStream.writeQString(default_type) addedHead = True lis = record.split('\t') if 1: id = int(lis[0] if lis[0] != "" else 0) ra = float((lis[1]).strip()) dec = float((lis[2]).strip()) bMag = float(lis[3]) vMag = float(lis[4]) oType = (lis[5]).strip() # mType = (lis[6]).strip() # majorAxisSize = float(lis[7]) minorAxisSize = float(lis[8]) orientationAngle = int(float(lis[9]) if float(lis[9]) != "" else 0) z = float(lis[10]) zErr = float(lis[11]) plx = float(lis[12]) plxErr = float(lis[13]) dist = float(lis[14]) distErr = float(lis[15]) NGC = int(lis[16] if lis[16] != "" else 0) IC = int(lis[17] if lis[17] != "" else 0) M = int(lis[18] if lis[18] != "" else 0) C = int(lis[19] if lis[19] != "" else 0) B = int(lis[20] if lis[20] != "" else 0) Sh2 = int(lis[21] if lis[21] != "" else 0) VdB = int(lis[22] if lis[22] != "" else 0) RCW = int(lis[23] if lis[23] != "" else 0) LDN = int(lis[24] if lis[24] != "" else 0) LBN = int(lis[25] if lis[25] != "" else 0) Cr = int(lis[26] if lis[26] != "" else 0) Mel = int(lis[27] if lis[27] != "" else 0) PGC = int(lis[28] if lis[28] != "" else 0) UGC = int(lis[29] if lis[29] != "" else 0) Ced = (lis[30]).strip() # Arp = int(lis[31] if lis[31] != "" else 0) VV = int(lis[32] if lis[32] != "" else 0) PK = (lis[33]).strip() # PNG = (lis[34]).strip() # SNRG = (lis[35]).strip() # ACO = (lis[36]).strip() # HCG = (lis[37]).strip() # ESO = (lis[38]).strip() # VdBH = (lis[39]).strip() # DWB = int(lis[40] if lis[40] != "" else 0) Tr = int(lis[41] if lis[41] != "" else 0) St = int(lis[42] if lis[42] != "" else 0) Ru = int(lis[43] if lis[43] != "" else 0) VdBHa = int(lis[44] if lis[44] != "" else 0) raRad = float(ra) * math.pi / 180 decRad = float(dec) * math.pi / 180 majorAxisSize /= 60 minorAxisSize /= 60 if (bMag <= 0): bMag = 99 if (vMag <= 0): vMag = 99 if oType.upper() in otypedic: nType = otypedic[oType.upper()] else: nType = 36 readOk += 1 dsoOutStream.writeInt(id) dsoOutStream.writeFloat(raRad) dsoOutStream.writeFloat(decRad) dsoOutStream.writeFloat(bMag) dsoOutStream.writeFloat(vMag) dsoOutStream.writeInt(nType) dsoOutStream.writeQString(mType) dsoOutStream.writeFloat(majorAxisSize) dsoOutStream.writeFloat(minorAxisSize) dsoOutStream.writeInt(orientationAngle) dsoOutStream.writeFloat(z) dsoOutStream.writeFloat(zErr) dsoOutStream.writeFloat(plx) dsoOutStream.writeFloat(plxErr) dsoOutStream.writeFloat(dist) dsoOutStream.writeFloat(distErr) dsoOutStream.writeInt(NGC) dsoOutStream.writeInt(IC) dsoOutStream.writeInt(M) dsoOutStream.writeInt(C) dsoOutStream.writeInt(B) dsoOutStream.writeInt(Sh2) dsoOutStream.writeInt(VdB) dsoOutStream.writeInt(RCW) dsoOutStream.writeInt(LDN) dsoOutStream.writeInt(LBN) dsoOutStream.writeInt(Cr) dsoOutStream.writeInt(Mel) dsoOutStream.writeInt(PGC) dsoOutStream.writeInt(UGC) dsoOutStream.writeQString(Ced) dsoOutStream.writeInt(Arp) dsoOutStream.writeInt(VV) dsoOutStream.writeQString(PK) dsoOutStream.writeQString(PNG) dsoOutStream.writeQString(SNRG) dsoOutStream.writeQString(ACO) dsoOutStream.writeQString(HCG) dsoOutStream.writeQString(ESO) dsoOutStream.writeQString(VdBH) dsoOutStream.writeInt(DWB) dsoOutStream.writeInt(Tr) dsoOutStream.writeInt(St) dsoOutStream.writeInt(Ru) dsoOutStream.writeInt(VdBHa) dsoIn.close() dsoOut.flush() dsoOut.close() return
def test(self): """ Public method to execute the tests. @return flag indicating the test result @rtype bool """ self.__withPrivate = True self.__loadData() if not self.__tldDict: return False testDataFileName = "" testDataFileExist = False for path in self.__dataSearchPaths: testDataFileName = (QFileInfo(path + "/test_psl.txt").absoluteFilePath()) if QFileInfo(testDataFileName).exists(): testDataFileExist = True break if not testDataFileExist: testFileDownloadLink = ( "http://mxr.mozilla.org/mozilla-central/source/netwerk/test/" "unit/data/test_psl.txt?raw=1") E5MessageBox.information( None, self.tr("TLD Data File not found"), self.tr("""<p>The file 'test_psl.txt' was not found!""" """<br/>You can download it from '<a href="{0}">""" """<b>here</b></a>' to one of the following""" """ paths:</p><ul>{1}</ul>""").format( testFileDownloadLink, "".join([ "<li>{0}</li>".format(p) for p in self.__dataSearchPaths ]))) return False file = QFile(testDataFileName) if not file.open(QFile.ReadOnly | QFile.Text): return False testRegExp = QRegExp( "checkPublicSuffix\\(('([^']+)'|null), ('([^']+)'|null)\\);") allTestSuccess = True while not file.atEnd(): line = bytes(file.readLine()).decode("utf-8").strip() if not line or line.startswith("//"): continue if testRegExp.indexIn(line) == -1: allTestSuccess = False else: hostName = testRegExp.cap(2) registrableName = testRegExp.cap(4) if not self.__checkPublicSuffix(hostName, registrableName): allTestSuccess = False if allTestSuccess: qWarning("E5TldExtractor: Test passed successfully.") else: qWarning("E5TldExtractor: Test finished with some errors!") # reset the TLD dictionary self.__tldDict = collections.defaultdict(list) return allTestSuccess