问题描述
我正在尝试将所选路径保存在变量 source_folder 中。 虽然如果我在函数中打印变量它可以工作,但它在函数外使用。
这是我的代码:
from flask import Flask,render_template,request,redirect,url_for
from flask_sqlalchemy import sqlAlchemy
app=Flask(__name__)
app.config["sqlALCHEMY_DATABASE_URI"]=....
db=sqlAlchemy(app)
class Data(db.Model):
__tablename__='data'
id=db.Column(db.Integer,primary_key=True,unique=True)
author_=db.Column(db.String(120))
year_=db.Column(db.Integer)
title_=db.Column(db.String(120),unique=True)
def __init__(self,author_,year_,title_):
self.author_=author_
self.year_=year_
self.title_=title_
class User(db.Model):
__tablename__='user'
id=db.Column(db.Integer,unique=True)
user_=db.Column(db.String(120))
email_=db.Column(db.String(120))
password_=db.Column(db.String(120))
def __init__(self,user_,email_,password_):
self.username=user_
self.email=email_
self.password=password_
db.create_all()
db.session.query(User).filter(User.username==username).scalar()
谢谢你们。
解决方法
InitUI()
只会在创建类对象时执行。所以在按钮后按下 print
的 InitUI()
指令将不起作用。这根本不是那个 var 的作用域的问题。
您可以通过添加一个新函数并从 open_dialog_box
def printSourceFolder(self):
print(self.source_folder)
def open_dialog_box(self):
self.source_folder = QFileDialog.getExistingDirectory(
self,'Select the source Folder:','C:\\',QtWidgets.QFileDialog.ShowDirsOnly)
print(self.source_folder) # here it works
self.printSourceFolder()