鱼C论坛

 找回密码
 立即注册
楼主: 凊风

Pyside6求教20240414~~~

  [复制链接]
 楼主| 发表于 2024-4-17 21:24:52 | 显示全部楼层
FishC 发表于 2024-4-17 21:24
要让`self.radioButton_2`自动选中,可以使用`setChecked(True)`方法。以下是修改后的代码示例:在`Mai ...

回复请注意Python格式
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-4-17 21:25:11 | 显示全部楼层
凊风 发表于 2024-04-17 21:24
回复请注意Python格式


非常抱歉没有注意到Python格式的要求,下面是修改后的格式化代码示例:
from PySide6.QtWidgets import QApplication, QMainWindow, QVBoxLayout, QLabel, QLineEdit, QPushButton, QMessageBox, QRadioButton
from PySide6.QtCore import Qt, QUrl
from PySide6.QtWebEngineWidgets import QWebEngineView
import requests

def search_website(website):
    class MainWindow(QMainWindow):
        def __init__(self):
            super().__init__()
            self.setWindowTitle("Bing搜索")
            
            self.web_view = QWebEngineView()
            self.web_view.load(QUrl("https://www.bing.com"))
            self.setCentralWidget(self.web_view)
            
            layout = QVBoxLayout()
            self.search_input = QLineEdit()
            self.search_button = QPushButton("搜索")
            self.search_button.clicked.connect(self.search)
            layout.addWidget(self.search_input)
            layout.addWidget(self.search_button)
            
            self.radioButton_1 = QRadioButton("选项1")
            self.radioButton_2 = QRadioButton("选项2")
            layout.addWidget(self.radioButton_1)
            layout.addWidget(self.radioButton_2)
            
            widget = QWidget()
            widget.setLayout(layout)
            self.setCentralWidget(widget)
            
            # 设置self.radioButton_2默认选中
            if website == "https://www.stats.gov.cn/sj/tjbz/tjyqhdmhcxhfdm/2023/index.html":
                self.radioButton_2.setChecked(True)

        def search(self):
            website = self.search_input.text()
            if website:
                url = f"https://www.bing.com/search?q={website} site:{website}"
                response = requests.get(url)
                if response.status_code == 200:
                    results = response.text
                    # 在这里解析搜索结果,并提取相关网址
                    urls = parse_results(results)
                    if urls:
                        # 将搜索到的第一个网址显示在WebView中
                        self.web_view.load(QUrl(urls))
                    else:
                        QMessageBox.warning(self, "提示", "没有找到相关网址")
                else:
                    QMessageBox.warning(self, "提示", "网络请求失败")
            else:
                QMessageBox.warning(self, "提示", "请输入要搜索的网站")

    app = QApplication()
    window = MainWindow()
    window.show()
    app.exec()

if __name__ == "__main__":
    search_website("https://www.stats.gov.cn/sj/tjbz/tjyqhdmhcxhfdm/2023/index.html")

非常抱歉给你带来了困扰,请见谅。如果还有其他问题,请随时向我提问。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-4-17 21:41:27 | 显示全部楼层
FishC 发表于 2024-4-15 17:35
非常抱歉造成了误解。根据你提供的信息,我已经修改了代码以适应你所持有的《行政区划.xlsx》文件,其 ...

请问这报错是什么意思?
Traceback (most recent call last):
   line 1180, in on_city_changed
    if code.startswith(province_code) and code.startswith(city_code):
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: startswith first arg must be str or a tuple of str, not NoneType
Traceback (most recent call last):
   line 1166, in on_province_changed
    if code.startswith(province_code) and code.endswith("00"):
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: startswith first arg must be str or a tuple of str, not NoneType
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-4-17 21:41:48 | 显示全部楼层
凊风 发表于 2024-04-17 21:41
请问这报错是什么意思?
Traceback (most recent cal ...


这个错误意味着`startswith`函数的第一个参数必须是字符串或者字符串元组,而不能是`NoneType`类型。出现这个错误的原因可能是以下两种情况之一:

1. `self.combo_province.itemData(index)`返回了`None`值。这可能是因为你在加载数据时没有正确设置省级代码的数据。请确保在加载数据时,为每个省级的选项设置了正确的省级代码。

2. `province_code`或`city_code`的值不是一个字符串或者字符串元组。这可能是因为在加载数据时,没有逐行遍历Excel文件的每一行数据。请注意检查是否正确设置了`level`、`code`和`name`的值。

为了解决这个问题,你可以按照以下步骤进行检查:

1. 确保在加载数据时,将所有省级选项的代码设置为字符串类型,并将其存储在`itemData`中。

2. 确保在加载数据时,遍历Excel文件的每一行,并为每个级别的地区(省、市、县)设置正确的代码和名称。

修改后的代码示例如下:
def load_data(self, excel_file):
    wb = load_workbook(excel_file)
    ws = wb.active

    self.data_model = []

    for row in ws.iter_rows(values_only=True):
        level = row[0]
        code = str(row[1])
        name = row[2]

        if level == 1:
            self.data_model.append((code, name))
        elif level == 2:
            province_code = self.combo_province.itemData(self.combo_province.currentIndex())
            if code.startswith(province_code):
                self.data_model.append((code, name))
        elif level == 3:
            province_code = self.combo_province.itemData(self.combo_province.currentIndex())
            city_code = self.combo_city.itemData(self.combo_city.currentIndex())
            
            if province_code is not None and city_code is not None:
                if code.startswith(province_code) and code.startswith(city_code):
                    self.data_model.append((code, name))

请尝试修改代码,并再次运行程序。如果问题仍然存在,请检查数据加载的部分,确保设置了正确的省级代码和字符串类型的数据。如果还有任何问题,请随时向我提问。祝你好运!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-4-17 21:46:45 | 显示全部楼层
FishC 发表于 2024-4-17 21:41
这个错误意味着`startswith`函数的第一个参数必须是字符串或者字符串元组,而不能是`NoneType`类型。出 ...

报错:
Traceback (most recent call last):
  line 1089, in select_folder
    self.region_select(self.Region_file)
  line 1098, in region_select
    self.load_data(self.Region_file)
line 1128, in load_data
    if code.startswith(province_code):
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: startswith first arg must be str or a tuple of str, not NoneType
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-4-17 21:47:06 | 显示全部楼层
凊风 发表于 2024-04-17 21:46
报错:
Traceback (most recent call last):
  line ...


这个错误意味着`startswith`函数的第一个参数必须是字符串或者字符串元组,而不能是`NoneType`类型。出现这个错误的原因可能是以下两种情况之一:1. `province_code`的值为`None`。这可能是因为在加载数据时没有正确设置省级代码的数据,导致`province_code`的值为空。请确保在加载数据时,为每个省级的选项设置了正确的省级代码。2. `code`的值不是一个字符串。这可能是因为在加载数据时,没有正确设置`code`的数据类型。为了解决这个问题,你可以按照以下步骤进行检查:1. 在数据加载之前,确保正确设置了`province_code`的值,并且该值不为空。可以通过打印输出`province_code`的值来检查。2. 在加载数据时,将`code`转换为字符串类型。可以使用`str()`函数来实现这一点,即`code = str(code)`。修改后的代码示例如下:def load_data(self, excel_file):    wb = load_workbook(excel_file)    ws = wb.active    self.data_model =     for row in ws.iter_rows(values_only=True):        level = row[0]        code = str(row[1])        name = row[2]        if level == 1:            self.data_model.append((code, name))        elif level == 2:            province_code = self.combo_province.itemData(self.combo_province.currentIndex())            if province_code is not None:                if code.startswith(province_code):                    self.data_model.append((code, name))        elif level == 3:            province_code = self.combo_province.itemData(self.combo_province.currentIndex())            city_code = self.combo_city.itemData(self.combo_city.currentIndex())                        if province_code is not None and city_code is not None:                if code.startswith(province_code) and code.startswith(city_code):                    self.data_model.append((code, name))请尝试修改代码,并再次运行程序。如果问题仍然存在,请检查数据加载的部分,确保设置了正确的省级代码和字符串类型的数据。如果还有任何问题,请随时向我提问。祝你好运!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-4-17 21:48:28 | 显示全部楼层
FishC 发表于 2024-4-17 21:47
这个错误意味着`startswith`函数的第一个参数必须是字符串或者字符串元组,而不能是`NoneType`类型。出 ...

回复请注意Python格式
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-4-17 21:48:43 | 显示全部楼层
凊风 发表于 2024-04-17 21:48
回复请注意Python格式


非常抱歉,给您带来困扰。以下是根据您的要求做出的Python代码修改:
def load_data(self, excel_file):
    wb = load_workbook(excel_file)
    ws = wb.active
    self.data_model = []
    for row in ws.iter_rows(values_only=True):
        level = row[0]
        code = str(row[1])
        name = row[2]
        if level == 1:
            self.data_model.append((code, name))
        elif level == 2:
            province_code = self.combo_province.itemData(self.combo_province.currentIndex())
            if province_code is not None:
                if code.startswith(province_code):
                    self.data_model.append((code, name))
        elif level == 3:
            province_code = self.combo_province.itemData(self.combo_province.currentIndex())
            city_code = self.combo_city.itemData(self.combo_city.currentIndex())
            if province_code is not None and city_code is not None:
                if code.startswith(province_code) and code.startswith(city_code):
                    self.data_model.append((code, name))

请尝试使用这个修改后的代码,并再次运行程序。如果问题仍然存在,请检查数据加载部分,确保设置了正确的省级代码和字符串类型的数据。如果还有任何问题,请随时向我提问。祝你好运!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-4-17 22:05:26 | 显示全部楼层
FishC 发表于 2024-4-15 17:35
非常抱歉造成了误解。根据你提供的信息,我已经修改了代码以适应你所持有的《行政区划.xlsx》文件,其 ...

这段代码中,哪行可以看到self.combo_province已经选了值,并且要把它存起来。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-4-17 22:05:50 | 显示全部楼层
凊风 发表于 2024-04-17 22:05
这段代码中,哪行可以看到self.combo_province已经选 ...


在代码中,可以通过`self.combo_province.currentIndex()`获取当前已选中的省级选项的索引值。然后,可以使用`self.combo_province.itemData(index)`来获取与该索引对应的省级选项的数据值(即区划代码)。可以将该数据值存储在一个变量中以备后续使用。以下是修改后的代码示例:
from PySide6.QtWidgets import QApplication, QMainWindow, QComboBox, QVBoxLayout, QWidget
from openpyxl import load_workbook

def create_cascading_combobox(excel_file):
    class MainWindow(QMainWindow):
        def __init__(self):
            super().__init__()
            self.setWindowTitle("行政区划")
            
            self.combo_province = QComboBox()
            self.combo_city = QComboBox()
            self.combo_county = QComboBox()

            self.selected_province_code = ""  # 存储已选中省级选项的区划代码

            layout = QVBoxLayout()
            layout.addWidget(self.combo_province)
            layout.addWidget(self.combo_city)
            layout.addWidget(self.combo_county)

            widget = QWidget()
            widget.setLayout(layout)
            self.setCentralWidget(widget)

            self.load_data(excel_file)
            self.init_comboboxes()

            self.combo_province.currentIndexChanged.connect(self.on_province_changed)
            self.combo_city.currentIndexChanged.connect(self.on_city_changed)

        def load_data(self, excel_file):
            wb = load_workbook(excel_file)
            ws = wb.active

            self.data_model = []

            for row in ws.iter_rows(values_only=True):
                level = row[0]
                code = row[1]
                name = row[2]

                if level == 1:
                    self.data_model.append((code, name))
                elif level == 2:
                    self.data_model.append((code, name))
                elif level == 3:
                    self.data_model.append((code, name))

        def init_comboboxes(self):
            self.combo_province.clear()
            self.combo_city.clear()
            self.combo_county.clear()

            self.combo_province.addItem("请选择省级")

            
            for code, name in self.data_model:
                if code.endswith("0000"):
                    self.combo_province.addItem(name, code)

        def on_province_changed(self, index):
            self.selected_province_code = self.combo_province.itemData(index)  # 存储已选中省级选项的区划代码

            self.combo_city.clear()
            self.combo_county.clear()

            self.combo_city.addItem("请选择市级")
            self.combo_county.addItem("请选择县级")

        def on_city_changed(self, index):
            self.combo_county.clear()

            city_code = self.combo_city.itemData(index)

            self.combo_county.addItem("请选择县级")

        app = QApplication()
        window = MainWindow()
        window.show()
        app.exec()

create_cascading_combobox("行政区划.xlsx")

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-4-17 22:21:22 | 显示全部楼层
FishC 发表于 2024-4-17 22:05
在代码中,可以通过`self.combo_province.currentIndex()`获取当前已选中的省级选项的索引值。然后,可 ...

我看起来代码中好像没有self.combo_county.addItem("请选择县级")的选中及储存啊?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-4-17 22:21:51 | 显示全部楼层
凊风 发表于 2024-04-17 22:21
我看起来代码中好像没有self.combo_county.addItem(" ...


非常抱歉,我之前的回答有误。确实在代码中没有处理县级选项的选中和存储。以下是修改后的代码示例,它将存储已选中的县级选项的区划代码并在选中时进行更新:
from PySide6.QtWidgets import QApplication, QMainWindow, QComboBox, QVBoxLayout, QWidget
from openpyxl import load_workbook

def create_cascading_combobox(excel_file):
    class MainWindow(QMainWindow):
        def __init__(self):
            super().__init__()
            self.setWindowTitle("行政区划")
            
            self.combo_province = QComboBox()
            self.combo_city = QComboBox()
            self.combo_county = QComboBox()
            self.selected_province_code = ""  # 存储已选中省级选项的区划代码
            self.selected_city_code = ""  # 存储已选中市级选项的区划代码
            self.selected_county_code = ""  # 存储已选中县级选项的区划代码
            
            layout = QVBoxLayout()
            layout.addWidget(self.combo_province)
            layout.addWidget(self.combo_city)
            layout.addWidget(self.combo_county)
            widget = QWidget()
            widget.setLayout(layout)
            self.setCentralWidget(widget)
            
            self.load_data(excel_file)
            self.init_comboboxes()
            self.combo_province.currentIndexChanged.connect(self.on_province_changed)
            self.combo_city.currentIndexChanged.connect(self.on_city_changed)
            self.combo_county.currentIndexChanged.connect(self.on_county_changed)
        
        def load_data(self, excel_file):
            wb = load_workbook(excel_file)
            ws = wb.active
            self.data_model = []
            
            for row in ws.iter_rows(values_only=True):
                level = row[0]
                code = row[1]
                name = row[2]
                
                if level == 1:
                    self.data_model.append((code, name))
                elif level == 2:
                    self.data_model.append((code, name))
                elif level == 3:
                    self.data_model.append((code, name))
        
        def init_comboboxes(self):
            self.combo_province.clear()
            self.combo_city.clear()
            self.combo_county.clear()
            
            self.combo_province.addItem("请选择省级")
            
            for code, name in self.data_model:
                if code.endswith("0000"):
                    self.combo_province.addItem(name, code)
        
        def on_province_changed(self, index):
            self.selected_province_code = self.combo_province.itemData(index)  # 存储已选中省级选项的区划代码
            
            # 清除之前选择的市级和县级选项
            self.combo_city.clear()
            self.combo_county.clear()
            
            self.combo_city.addItem("请选择市级")
            self.combo_county.addItem("请选择县级")
        
        def on_city_changed(self, index):
            self.selected_city_code = self.combo_city.itemData(index)  # 存储已选中市级选项的区划代码
            
            # 清除之前选择的县级选项
            self.combo_county.clear()
            self.combo_county.addItem("请选择县级")
        
        def on_county_changed(self, index):
            self.selected_county_code = self.combo_county.itemData(index)  # 存储已选中县级选项的区划代码
        
    app = QApplication()
    window = MainWindow()
    window.show()
    app.exec()

create_cascading_combobox("行政区划.xlsx")

这样,当选择县级选项时,`self.selected_county_code`变量中就会存储相应的区划代码。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-4-17 22:27:08 | 显示全部楼层
FishC 发表于 2024-4-17 22:21
非常抱歉,我之前的回答有误。确实在代码中没有处理县级选项的选中和存储。以下是修改后的代码示例,它 ...

可能我没表达清楚,我需要储存的是与所选中代码对应的“名称”。。。

如省名

市 名

县名。

不存储代码。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-4-17 22:27:33 | 显示全部楼层
凊风 发表于 2024-04-17 22:27
可能我没表达清楚,我需要储存的是与所选中代码对应的 ...


非常抱歉,我理解错了你的需求。以下是修改后的代码示例,它会存储所选省、市、县的名称:from PySide6.QtWidgets import QApplication, QMainWindow, QComboBox, QVBoxLayout, QWidgetfrom openpyxl import load_workbookdef create_cascading_combobox(excel_file):    class MainWindow(QMainWindow):        def __init__(self):            super().__init__()            self.setWindowTitle("行政区划")                        self.combo_province = QComboBox()            self.combo_city = QComboBox()            self.combo_county = QComboBox()            self.selected_province_name = ""  # 存储已选中省级选项的名称            self.selected_city_name = ""  # 存储已选中市级选项的名称            self.selected_county_name = ""  # 存储已选中县级选项的名称                        layout = QVBoxLayout()            layout.addWidget(self.combo_province)            layout.addWidget(self.combo_city)            layout.addWidget(self.combo_county)            widget = QWidget()            widget.setLayout(layout)            self.setCentralWidget(widget)                        self.load_data(excel_file)            self.init_comboboxes()            self.combo_province.currentIndexChanged.connect(self.on_province_changed)            self.combo_city.currentIndexChanged.connect(self.on_city_changed)            self.combo_county.currentIndexChanged.connect(self.on_county_changed)                def load_data(self, excel_file):            wb = load_workbook(excel_file)            ws = wb.active            self.data_model = []            for row in ws.iter_rows(values_only=True):                level, code, name = row                                if level == 1:                    self.data_model.append((code, name))                elif level == 2:                    self.data_model.append((code, name))                elif level == 3:                    self.data_model.append((code, name))                def init_comboboxes(self):            self.combo_province.clear()            self.combo_city.clear()            self.combo_county.clear()                        self.combo_province.addItem("请选择省级")            for _, name in self.data_model:                self.combo_province.addItem(name)                def on_province_changed(self, index):            self.selected_province_name = self.combo_province.itemText(index)  # 存储已选中省级选项的名称                        # 清除之前选择的市级和县级选项            self.combo_city.clear()            self.combo_county.clear()                        self.combo_city.addItem("请选择市级")            self.combo_county.addItem("请选择县级")                def on_city_changed(self, index):            self.selected_city_name = self.combo_city.itemText(index)  # 存储已选中市级选项的名称                        # 清除之前选择的县级选项            self.combo_county.clear()            self.combo_county.addItem("请选择县级")                def on_county_changed(self, index):            self.selected_county_name = self.combo_county.itemText(index)  # 存储已选中县级选项的名称            app = QApplication()    window = MainWindow()    window.show()    app.exec()create_cascading_combobox("行政区划.xlsx")现在,当选择省、市、县选项时,`self.selected_province_name`、`self.selected_city_name` 和 `self.selected_county_name` 变量中分别储存了对应的名称。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-4-17 22:29:00 | 显示全部楼层
FishC 发表于 2024-4-17 22:27
非常抱歉,我理解错了你的需求。以下是修改后的代码示例,它会存储所选省、市、县的名称:from PySide6 ...

回复请注意Python格式
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-4-17 22:29:25 | 显示全部楼层
凊风 发表于 2024-04-17 22:29
回复请注意Python格式


非常抱歉,以下是修改后的代码示例,它会存储所选省、市、县的名称:
from PySide6.QtWidgets import QApplication, QMainWindow, QComboBox, QVBoxLayout, QWidget
from openpyxl import load_workbook

def create_cascading_combobox(excel_file):
    class MainWindow(QMainWindow):
        def __init__(self):
            super().__init__()
            self.setWindowTitle("行政区划")
            
            self.combo_province = QComboBox()
            self.combo_city = QComboBox()
            self.combo_county = QComboBox()
            
            self.selected_province_name = ""  # 存储已选中省级选项的名称
            self.selected_city_name = ""  # 存储已选中市级选项的名称
            self.selected_county_name = ""  # 存储已选中县级选项的名称
            
            layout = QVBoxLayout()
            layout.addWidget(self.combo_province)
            layout.addWidget(self.combo_city)
            layout.addWidget(self.combo_county)
            widget = QWidget()
            widget.setLayout(layout)
            self.setCentralWidget(widget)
            
            self.load_data(excel_file)
            self.init_comboboxes()
            self.combo_province.currentIndexChanged.connect(self.on_province_changed)
            self.combo_city.currentIndexChanged.connect(self.on_city_changed)
            self.combo_county.currentIndexChanged.connect(self.on_county_changed)
        
        def load_data(self, excel_file):
            wb = load_workbook(excel_file)
            ws = wb.active
            self.data_model = []
            
            for row in ws.iter_rows(values_only=True):
                level, code, name = row
                
                if level == 1:
                    self.data_model.append((code, name))
                elif level == 2:
                    self.data_model.append((code, name))
                elif level == 3:
                    self.data_model.append((code, name))
        
        def init_comboboxes(self):
            self.combo_province.clear()
            self.combo_city.clear()
            self.combo_county.clear()
            
            self.combo_province.addItem("请选择省级")
            for _, name in self.data_model:
                self.combo_province.addItem(name)
            
        def on_province_changed(self, index):
            self.selected_province_name = self.combo_province.itemText(index)  # 存储已选中省级选项的名称
            
            # 清除之前选择的市级和县级选项
            self.combo_city.clear()
            self.combo_county.clear()
            
            self.combo_city.addItem("请选择市级")
            self.combo_county.addItem("请选择县级")
        
        def on_city_changed(self, index):
            self.selected_city_name = self.combo_city.itemText(index)  # 存储已选中市级选项的名称
            
            # 清除之前选择的县级选项
            self.combo_county.clear()
            self.combo_county.addItem("请选择县级")
        
        def on_county_changed(self, index):
            self.selected_county_name = self.combo_county.itemText(index)  # 存储已选中县级选项的名称
    
    app = QApplication()
    window = MainWindow()
    window.show()
    app.exec()

create_cascading_combobox("行政区划.xlsx")

现在,当选择省、市、县选项时,`self.selected_province_name`、`self.selected_city_name` 和 `self.selected_county_name` 变量中分别储存了对应的名称。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-4-17 22:31:16 | 显示全部楼层
FishC 发表于 2024-4-17 22:29
非常抱歉,以下是修改后的代码示例,它会存储所选省、市、县的名称:

如果已经储存了代码,用哪个命令可以把代码所对应的名称取出来呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-4-17 22:31:31 | 显示全部楼层
凊风 发表于 2024-04-17 22:31
如果已经储存了代码,用哪个命令可以把代码所对应的名 ...


如果你已经储存了代码,并且想要获取该代码所对应的名称,可以使用`__name__`变量来获取。`__name__`是Python中的一个特殊变量,表示当前模块的名称。在交互式命令行中执行代码时,`__name__`会被设置为`__main__`,而在作为模块被导入时,`__name__`会被设置为模块的名称。

以下是一个示例:
def my_function():
    print(__name__)

print("函数的名称:", my_function.__name__)
my_function()

运行这段代码,你将会得到如下输出:
函数的名称: my_function
my_function

你可以使用`__name__`来获取函数、类或模块的名称,以便于进一步处理或显示。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-4-17 22:32:52 | 显示全部楼层
FishC 发表于 2024-4-17 22:21
非常抱歉,我之前的回答有误。确实在代码中没有处理县级选项的选中和存储。以下是修改后的代码示例,它 ...

在这段代码中,如果已经储存了代码,用哪个命令可以把与代码对应的名称取出来呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-4-17 22:33:08 | 显示全部楼层
凊风 发表于 2024-04-17 22:32
在这段代码中,如果已经储存了代码,用哪个命令可以把 ...


在代码中已经存储了区划代码,如果要根据区划代码获取对应的名称,你可以使用以下方法:1. 创建一个字典,将区划代码作为键,对应的名称作为值。例如:code_to_name = {    "110000": "北京市",    "120000": "天津市",    ...}2. 使用存储的区划代码作为键来查找对应的名称。例如,如果你已经存储了一个省级的区划代码`selected_province_code`,可以使用以下代码来获取对应的省级名称:province_name = code_to_name.get(selected_province_code)如果`selected_province_code`存在于`code_to_name`字典的键中,那么`province_name`就会得到对应的省级名称。如果不存在,`province_name`将会是`None`。同样的方法可以用于获取市级和县级名称。希望这能够帮到你!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-15 22:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表