@@ -2122,22 +2122,42 @@ def click_pushButton_qhqqi_blog(self):
21222122 def click_pushButton_youximululeibiao (self ):
21232123 self .stackedWidget_mos_right .setCurrentIndex (1 )
21242124
2125- def game_first_initialize_add (self , name ):
2126- '''将游戏添加到 主页上“选择要启动的游戏”下拉框中'''
2127- name1 = [name ]
2128- self .comboBox_gonggao_right .addItems (name1 )
2129- self .listWidget_2 .addItem (name )
2130-
2131- def game_dir_add (self , name , back = None ):
2132- '''在版本文件夹类表中添加(多个)“文本”和图标
2133- 参数back为是否返回到“版本文件夹下的游戏类表”页
2125+ def game_first_initialize_add (self , name , back = None ):
2126+ '''将游戏添加到 主页上“选择要启动的游戏”下拉框 和“游戏目录”列表中 所选的目录下的游戏列表中
2127+ 如果要 将 “游戏目录列表” 右边的页面 切换为 “当前选择的游戏目录 中的游戏 列表” back='Yes'
2128+ 如果不,请写No
21342129 '''
2130+ # 先清空列表
2131+ self .listWidget_2 .clear ()
2132+ self .listWidget_2 .addItems (name )
2133+ if back != 'No' :
2134+ self .stackedWidget_5 .setCurrentIndex (0 )
2135+ elif back == 'No' :
2136+ pass
2137+ def game_first_initialize_add_DropDownBox (self , name ):
2138+ '''在刚开始运行时,将所有的游戏添加到“选择要启动的游戏”下拉框中'''
2139+ self .comboBox_gonggao_right .clear ()
2140+ self .comboBox_gonggao_right .addItems (name )
2141+
2142+ def game_first_initialize_add_error (self , error ):
2143+ '''当点击 “游戏文件夹列表” 中的 文件夹后,检测目录下的游戏后 发生的错误'''
2144+ if error == '该版本文件夹下无游戏' :
2145+ # 先清空列表
2146+ self .listWidget_2 .clear ()
2147+ self .listWidget_2 .addItem ("该版本文件夹下无游戏" )
2148+ self .stackedWidget_5 .setCurrentIndex (0 )
2149+ elif error == '该版本文件夹下无游戏目录' :
2150+ # 先清空列表
2151+ self .listWidget_2 .clear ()
2152+ self .listWidget_2 .addItem ("该版本文件夹下无游戏目录" )
2153+ self .stackedWidget_5 .setCurrentIndex (0 )
2154+
2155+ def game_dir_add (self , name ):
2156+ '''在游戏文件夹类表中添加(多个)“文本”和图标'''
21352157 for name_1 in name :
21362158 icon2 = os .path .join ("picture" ,"folder.png" )
21372159 item = QListWidgetItem (QIcon (icon2 ),name_1 )
21382160 self .listWidget .addItem (item )
2139- if back != None :
2140- self .stackedWidget_mos_right .setCurrentIndex (0 )
21412161
21422162 def click_pushButton_youximululeibiao_back (self ):
21432163 '''当点击版本列表页面上方的“返回”按钮后……'''
@@ -2178,7 +2198,6 @@ def click_pushButton_youximululeibiao_add_back(self):
21782198
21792199 def click_lineEdit_youximululeibiao_check (self ):
21802200 '''当“添加版本文件夹”页面中的“名称输入框”中的文字改变时,检查是否设置了要添加的文件夹路径。如果没有就不激活按钮,如果有,则激活'''
2181- MOS_print ("error" ,"jjjjjjjj" )
21822201 a = self .lineEdit_4 .text ()
21832202 if self .label_46 .text () == "请先选择一个目录" :
21842203 self .pushButton_18 .setEnabled (False )
@@ -2201,8 +2220,10 @@ def click_lineEdit_youximululeibiao_check_leibiao(self, item):
22012220 self .game = game_first_initialize (file_versinons = name )
22022221 self .game .sinOut_game_add .connect (self .game_first_initialize_add )
22032222 self .game .sinOut_game_dir_add .connect (self .game_dir_add )
2223+ self .game .sinOut_game_error .connect (self .game_first_initialize_add_error )
22042224 self .game .start ()
2205-
2225+
2226+
22062227
22072228
22082229
@@ -2563,9 +2584,11 @@ def MOS_file_return_font(self, a):
25632584 def MOS_file_return (self , str ):
25642585 '''文件处理后……(如果成功那么启动2进程 如果失败……)'''
25652586 if str == "OK!" :
2566- self .game = game_first_initialize ()
2587+ self .game = game_first_initialize (all = 'Yes' )
25672588 self .game .sinOut_game_add .connect (self .game_first_initialize_add )
2589+ self .game .sinOut_game_add_DropDownBox .connect (self .game_first_initialize_add_DropDownBox )
25682590 self .game .sinOut_game_dir_add .connect (self .game_dir_add )
2591+ self .game .sinOut_game_error .connect (self .game_first_initialize_add_error )
25692592 self .game .start ()
25702593
25712594 self .g = gonggao ()
@@ -3013,14 +3036,18 @@ def run(self):
30133036 MOS_print ("error" ,error )
30143037
30153038class game_first_initialize (QThread ):
3016- '''遍历versions文件+缓存, 默认
3039+ '''遍历versions文件+缓存
30173040 如果要遍历特定的文件夹,请把file_versinons附上路径
3041+ 是程序刚开始运行时初始化的 all="Yes" (会检测Json中所有路径下的游戏,并添加到“选择要启动的游戏”下拉框中 然后单独检测默认目录,将其添加到 “目录下的游戏”列表)
30183042 '''
3019- sinOut_game_add = pyqtSignal (str )
3043+ sinOut_game_add = pyqtSignal (list , str )
30203044 sinOut_game_dir_add = pyqtSignal (list )
3045+ sinOut_game_add_DropDownBox = pyqtSignal (list )
3046+ sinOut_game_error = pyqtSignal (str )
30213047
3022- def __init__ (self ,file_versinons = None ):
3048+ def __init__ (self , file_versinons = None , all = None ):
30233049 self .file_versinons = file_versinons
3050+ self .all = all
30243051 super (game_first_initialize , self ).__init__ ()
30253052
30263053 def run (self ):
@@ -3035,9 +3062,13 @@ def run(self):
30353062 file = user_home + '/Documents'
30363063 else :
30373064 file = ''
3065+
3066+
3067+ # file_ 这个是为了在后面判断,这个指定的文件夹下,有没有游戏文件夹(在后面的代码中,如果报:找不到文件夹(就是游戏文件夹)这个变量的值会改变
3068+ file_ = "Yes"
30383069
30393070 if self .file_versinons == None :
3040- # 在程序刚刚开始运行的时候,在Json中获取所有的名称,并传给主窗口的game_dir_add函数,将名称和图标添加到列表中
3071+ # 在程序刚刚开始运行的时候,在Json中获取所有的名称,并传给主窗口的game_dir_add函数,将名称和图标添加到游戏文件夹列表中
30413072 MOS_json_read_geme_dir_Game = MOS_json_read (MOS_game_dir = 'Yes' ,MOS_game_dir_name_or_dir = 'name' )
30423073 self .sinOut_game_dir_add .emit (MOS_json_read_geme_dir_Game )
30433074
@@ -3080,7 +3111,8 @@ def run(self):
30803111 MOS_versions_not_found_jar .append (f_3 )
30813112 MOS_versions_not_found_jar_name .append (f_2_yuan )
30823113 except FileNotFoundError :
3083- MOS_print ("error" ,str ("找不到" + file_1 ))
3114+ # 在上面说了file_是做什么的
3115+ file_ = "NO"
30843116
30853117 if self .file_versinons == None :
30863118 b = "默认目录"
@@ -3092,6 +3124,44 @@ def run(self):
30923124 b = b_1
30933125 else :
30943126 MOS_print ("error" , b_1 )
3127+
3128+ # 开始处理all
3129+ if self .all != None :
3130+ # 获取所有路径
3131+ all_1 = MOS_json_read (MOS_game_dir = 'Yes' ,MOS_game_dir_name_or_dir = 'dir' )
3132+ # 准备列表
3133+ all_name = []
3134+ # 准备遍历
3135+ for all_2 in all_1 :
3136+ all_file = os .path .join (all_2 , "versions" )
3137+ # 开始遍历
3138+ # all_file_2是versions文件夹的路径
3139+ all_file_2 = os .listdir (all_file )
3140+ for all_file_3 in all_file_2 :
3141+ # 开始一个一个进行分析
3142+ # 注意:all_file_3 里面存的是名字 而不是 路径
3143+ all_file_4 = os .path .join (all_file , all_file_3 )
3144+ if os .path .isdir (all_file_4 ):
3145+ # 如果是文件夹
3146+ jar = (all_file_3 + ".jar" )
3147+ json = (all_file_3 + ".json" )
3148+ jar_2 = os .path .join (all_file_4 , jar )
3149+ json_2 = os .path .join (all_file_4 , json )
3150+ if os .path .exists (jar_2 ):
3151+ # 如果有jar文件
3152+ if os .path .exists (json_2 ):
3153+ # 如果也有Json
3154+ all_name .append (all_file_3 )
3155+ else :
3156+ # 如果没Json
3157+ all_name_2 = str (all_file_3 ) + "找不到Json文件"
3158+ all_name .append (all_name_2 )
3159+ else :
3160+ # 如果连Jar都没有,直接判断,不是游戏文件夹
3161+ pass
3162+ self .sinOut_game_add_DropDownBox .emit (all_name )
3163+
3164+
30953165
30963166 MOS_print ("info" ,"——————————————————————————————————————————————————————" )
30973167 MOS_print ("info" ,str ("'" + b + "'中" + "正常的游戏:" + str (MOS_versions_zhengchang_name )))
@@ -3104,15 +3174,43 @@ def run(self):
31043174 MOS_print ("info" ,str ("所对应的路径" + str (MOS_versions_not_found_json )))
31053175 MOS_print ("info" ,"——————————————————————————————————————————————————————" )
31063176 MOS_print ("info" ,"检测完毕" )
3107- for a in MOS_versions_zhengchang_name :
3108- #正常的
3109- self .sinOut_game_add .emit (a )
3110- for a in MOS_versions_not_found_jar_name :
3111- #少jar的
3112- self .sinOut_game_add .emit (a )
3113- for a in MOS_versions_not_found_json_name :
3114- #少json的
3115- self .sinOut_game_add .emit (a )
3177+
3178+ if file_ == 'Yes' :
3179+ '''判断 有没有游戏文件夹 file_的注释在上面'''
3180+ if len (MOS_versions_zhengchang_name ) == 0 and len (MOS_versions_not_found_jar_name ) == 0 and len (MOS_versions_not_found_json_name ) == 0 :
3181+ '''单独判断是不是一个游戏都没有'''
3182+ MOS_print ("info" , str ("'" + b + "'中没有游戏" ))
3183+ self .sinOut_game_error .emit ("该版本文件夹下无游戏" )
3184+ else :
3185+ if len (MOS_versions_zhengchang_name ) != 0 :
3186+ if self .file_versinons == None :
3187+ #正常的
3188+ self .sinOut_game_add .emit (MOS_versions_zhengchang_name ,'No' )
3189+ else :
3190+ self .sinOut_game_add .emit (MOS_versions_zhengchang_name ,'Yes' )
3191+ else :
3192+ MOS_print ("info" , str ("'" + b + "'中没有正常的游戏" ))
3193+
3194+ if len (MOS_versions_not_found_jar_name ) != 0 :
3195+ if self .file_versinons == None :
3196+ #少jar的
3197+ self .sinOut_game_add .emit (MOS_versions_not_found_json_name ,'No' )
3198+ else :
3199+ self .sinOut_game_add .emit (MOS_versions_not_found_json_name ,'Yes' )
3200+ else :
3201+ MOS_print ("info" , str ("'" + b + "'中没有少Jar的游戏" ))
3202+
3203+ if len (MOS_versions_not_found_json_name ) != 0 :
3204+ if self .file_versinons == None :
3205+ #少json的
3206+ self .sinOut_game_add .emit (MOS_versions_not_found_json_name ,'NO' )
3207+ else :
3208+ self .sinOut_game_add .emit (MOS_versions_not_found_json_name ,'Yes' )
3209+ else :
3210+ MOS_print ("info" , str ("'" + b + "'中没有少Json的游戏" ))
3211+ else :
3212+ self .sinOut_game_error .emit ("该版本文件夹下无游戏目录" )
3213+ MOS_print ("error" ,str ("找不到" + file_1 + "没有游戏目录" ))
31163214
31173215
31183216def MOS_json_read (All = None , MOS_game_dir = None , MOS_game_dir_name_or_dir = None , MOS_game_name_dir = None , MOS_game_dir_to_name = None ,file = None ):
0 commit comments