我正在用基维创建一个调查表。我在GUI中添加了一些标签小部件。 我不想在代码中静态定义标签文本,相反,我的目标是动态更新从excel文件中获取的标签文本。
例如:我的excel文件有两个问题:
我的GUI中有2个标签小部件,小部件的文本应为:
分别并且必须从excel文件中动态获取。
当我尝试运行代码时遇到错误。
Questionnaire.py
Schema::create('taggables', function (Blueprint $table) {
$table->primary(['tag_id', 'taggable_id', 'taggable_type']); //This is to avoid duplicate relationships
$table->unsignedInteger('tag_id');
$table->unsignedInteger('taggable_id');
$table->string('taggable_type');
$table->timestamps();
});
Questionnaire.kv
// A:
template<typename T>
using fcnPtr1 = void (T::*)(const int&);
// B:
typedef void(*fcnPtr2)(const int&);
class TestInterface
{
public:
// A: This cause error 'fcnPtr1' is not a type
virtual void setCallback(fcnPtr1 callback) = 0;
// B: This is OK
virtual void setCallback(fcnPtr2 callback) = 0;
};
我遇到以下错误:
from kivy.app import App
from kivy.uix.widget import Widget
from kivy.properties import ObjectProperty
import pandas as pd
class FetchData():
file = pd.read_excel("Questionnaire.xlsx")
Quest = file['QUESTIONS']
class Questions(Widget):
Data = FetchData().Quest
qvars =[]
company = ObjectProperty(None)
department = ObjectProperty(None)
qvars.append(company)
qvars.append(department)
def validate(self):
for i in range(len(self.qvars)):
self.qvars[i].text = self.Data[i]
class QuestionnaireApp(App):
def build(self):
return Questions()
if __name__=="__main__":
QuestionnaireApp().run()
我提到的类似问题的错误相同,但是没有一个问题与我的问题特别匹配。
答案 0 :(得分:0)
使用qvars
列表会使事情搞砸,因为它是属性对象的列表,行为不正确-Kivy Properties是描述符,它们仅在类级别起作用。
相反,只需在您的方法中访问self.company
或self.department
。