Вы setVisible(True)
на каждой этикетке.
Почему ярлыки не отображаются после deleteLater ()?
deleteLater()
не имеет значения относительно вашей проблемы.
В python
, в основном, вы подготавливаете настройки перед их отображением.
setGeometry()
, setPixmap()
, установите ..... все настройки.
и когда отображается родительский виджет, отображаются все настройки.
А вот надписи на проблеме, окно уже было показано.
Итак, вы должны setVisible(True)
ясно.
То есть, вы устанавливаете метки в первый раз, в конструкторе init ярлыки скоро появятся.
Я думаю, что есть исключение относительно основной мысли о python
, я понятия не имею, кроме как по причине.
1.2 решается с помощью setVisible (True).
на вопрос 3,
Важно измерить номер каталога.
label5 Issue
Как правило, setText()
выполняется один раз.
Я рекомендую иногда настраивать ваш код для подсчета числа во время обработки некоторых действий, но сейчас не время. Потому что в этом нет необходимости.
Если вы хотите показать изменение номера, вы выполняете его в последовательности или на временной шкале.
Если ваша фолда очень большая, и у вас есть большое количество фолдов, вы можете естественным образом увидеть изменение последовательности или во время нее.
for num in sequence:
label5.setText(str(num))
но я понял, что вы хотели показать изменение в любом случае, поэтому я использовал QTimeLine
от 0 до dir_length, 2000 мс, номер будет изменен после QTimeLine.start()
в коде.
От вас зависит, когда вы подключитесь таким образом, посчитаете ли вы количество фолдов.
Я думаю, что сейчас не могу сказать это ясно.
Я не объясняю, как это сделать здесь.
пожалуйста, добавьте эти команды.
import os #at the first line of your editor.
-----------------------------
dir_path= self.textbox.text() # under the function of start
print(dir_path)
list_dir = os.listdir(dir_path)
dir_length = len(list_dir)
в моем случае, как результат, пожалуйста, попробуйте этот код.
Обновлено
В моем случае с этим проблем не было. Кнопки и текстовые поля полностью скрыты.
Но в вашем случае оно остается после нажатия кнопки пуска.
Я пытался изменить ваш код с deleteLater()
на setVisible(False)
self.start_btn.setVisible(False
self.browse_btn.setVisible(False)
self.textbox.setVisible(False)
Если вы не можете решить проблему, пожалуйста, дайте мне комментарий.
import os
from PyQt4.QtGui import QLabel, QPixmap
class Second(QtGui.QMainWindow):
def __init__(self, parent=None):
super(Second, self).__init__(parent)
class First(QtGui.QMainWindow):
def __init__(self, parent=None):
super(First, self).__init__(parent)
self.labl = QtGui.QLabel(self)
self.setGeometry(550, 200, 550, 300)
self.setWindowTitle('-VDT')
self.logo=QLabel(self)
self.logo.setPixmap(QPixmap("logo.jpg"))
self.logo.move(130, 30)
self.logo.setVisible(True)
self.browse_btn = QtGui.QPushButton('Browse', self)
self.browse_btn.move(430, 110)
self.start_btn = QtGui.QPushButton('Start', self)
self.start_btn.move(150, 200)
self.textbox = QtGui.QLineEdit(self)
self.textbox.move(80, 110)
self.textbox.resize(330, 25)
self.browse_btn.clicked.connect(self.browse)
self.start_btn.clicked.connect(self.start)
self.dialog = Second(self)
def browse(self):
file = str(QtGui.QFileDialog.getExistingDirectory(self, "Select Directory"))
self.textbox.setText(file)
def start(self):
# self.dialog.setGeometry(550, 200, 550, 300)
# self.dialog.show()
dir_path= self.textbox.text()
print(dir_path)
list_dir = os.listdir(dir_path)
dir_length = len(list_dir)
self.start_btn.setVisible(False)
self.browse_btn.setVisible(False)
self.textbox.setVisible(False)
self.logo.setVisible(True)
self.label1 = QtGui.QLabel(self)
self.label1.setText("Started Processing")
self.label1.move(30, 110)
self.label1.setVisible(True)
self.label2 = QtGui.QLabel(self)
self.label2.setText("Total files")
self.label2.move(30, 160)
self.label2.setVisible(True)
self.label3 = QtGui.QLabel(self)
self.label3.setText("Processed Files")
self.label3.move(30, 210)
self.label3.setVisible(True)
Total_no_of_files= dir_length
self.label4 = QtGui.QLabel(self)
self.label4.setText(str(dir_length)) #Have to add number of files in the selected folder
self.label4.move(240, 160)
self.label4.setVisible(True)
self.label5 = QtGui.QLabel(self)
self.label5.move(240, 210)
self.label5.setVisible(True)
path = dir_path
TEST_IMAGE_PATHS = [f for f in os.listdir(path) if f.endswith('.jpg')]
# print(TEST_IMAGE_PATHS)
Total_No_Files = len(TEST_IMAGE_PATHS)
import cv2
comp_no_files=0
for filename in TEST_IMAGE_PATHS:
image_path= path+'//'+filename
print(image_path)
image = cv2.imread(image_path)
img = cv2.resize(image, (660, 340))
cv2.imshow('Show Image', img)
cv2.waitKey(1)
cv2.destroyAllWindows()
comp_no_files += 1
self.label5.setText(str(comp_no_files))
def main():
app = QtGui.QApplication(sys.argv)
main = First()
main.show()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
после обновления обработанный файл равен 1., потому что у меня есть файл jpg.
![result](https://i.stack.imgur.com/UkNzF.png)