所以我正在编写一个程序,将中英文定义.txt文件转换为通过CLI运行的词汇训练器.但是,在windows中,当我尝试在VS2017中编译它时,它变成了胡言乱语,我不知道为什么.我认为它在Linux中工作正常,但是Windows似乎把它搞得一团糟.这与Windows中的编码表有关吗?我错过了什么吗?我在Linux中编写了代码以及输入文件,但我尝试使用Windows IME编写字符并且仍然具有相同的结果.我认为这张照片最适合自己.谢谢
注意:根据要求添加了Windows中显示的输入/输出样本.此外,输入是UTF-8.
输入样本
?(rén),person
?(d?o),knife
?(lì),power
?(yòu),right hand; again
?(k?u),mouth
Run Code Online (Sandbox Code Playgroud)
输出样本
???(r??n),person
?êÇ(d?üo),knife
?è¢(l?¼),power
?Åê(y??u),right hand; again
?Åú(k?Æu),mouth
?£ƒ(t?ö),earth
Run Code Online (Sandbox Code Playgroud)
前言:我正在 PyQt5 中开发一个抽认卡应用程序,我试图让“Enter”按钮执行一个操作,通过调用一个函数来比较 2 个字符串(其中一个来自 textEdit 框,另一个来自字符串列表)我已经预先编码了。)其次,我希望它通过调用 checkanswer() 函数将比较显示为“对或错”,但是当我按下按钮并尝试让它调用不同的函数时,它会重复checkanswer() 的相同行为.. 即使我试图调用 nextcard() [在 print("correct") 情况下]
这让我想到了我的问题:每个 QPushButton 可以只做一个动作吗?我希望它在继续下一个单词之前通知用户(或强迫他们输入正确答案)。基本上我想要一个按钮在不同的时间调用 checkanswer() 函数和 nextword() 方法。
这是我的主窗口的代码。如果您需要更多信息,请告诉我,我会在此处添加。
class MainWindow(QtWidgets.QMainWindow):
textvalue = ""
cardnum = 0 # intialize card number from 0
def __init__(self):
super().__init__()
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
self.ui.pushButtonEnter.clicked.connect(self.checkanswer)
self.show()
def checkanswer(self):
textvalue = self.ui.lineEditAnswer.text()
print("You entered: " + textvalue + " $? " + deck[self.cardnum].deflist[0])
if textvalue == deck[self.cardnum].deflist[0]:
print("Correct!")
self.ui.lineEditAnswer.clear()
textvalue = ""
self.ui.labelVocab.setText("Correct!\n " + deck[self.cardnum].deflist[0])
self.ui.pushButtonEnter.setText("Continue")
self.ui.pushButtonEnter.clicked.connect(self.nextword)
else:
print("Incorrect!")
print(self.cardnum) …Run Code Online (Sandbox Code Playgroud) 例如,如果用户选择选项 1 - 3,它会执行他们自己的特定任务。如果用户输入 4,它会执行所有选项 1 - 3。有没有办法使用 switch 语句来完成此操作,而不必复制和粘贴每种情况下的所有代码?
switch (option) {
case 1: {
System.out.println("1");
break;
}
case 2: {
System.out.println("2");
break;
}
case 3: {
System.out.println("3");
break;
}
case 4: {
System.out.println("1");
System.out.println("2");
System.out.println("3");
break;
}
default: {
System.out.print("Invalid selection.");
break;
}
}
Run Code Online (Sandbox Code Playgroud)