Added text alignment option
This commit is contained in:
parent
7d2ecb0d15
commit
c772bf5583
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
10
core.py
10
core.py
|
@ -26,7 +26,7 @@ class Core():
|
|||
except:
|
||||
return "avconv"
|
||||
|
||||
def drawBaseImage(self, backgroundImage, titleText, titleFont):
|
||||
def drawBaseImage(self, backgroundImage, titleText, titleFont, alignment):
|
||||
|
||||
if self._image == None or not self.lastBackgroundImage == backgroundImage:
|
||||
self.lastBackgroundImage = backgroundImage
|
||||
|
@ -49,7 +49,13 @@ class Core():
|
|||
painter.setFont(font)
|
||||
painter.setPen(QColor(255, 255, 255))
|
||||
|
||||
painter.drawText(70, 375, titleText)
|
||||
fm = QtGui.QFontMetrics(font)
|
||||
if alignment == "Left":
|
||||
painter.drawText(70, 375, titleText)
|
||||
if alignment == "Middle":
|
||||
painter.drawText(1280/2 - fm.width(titleText)/2, 375, titleText)
|
||||
if alignment == "Right":
|
||||
painter.drawText(1210 - fm.width(titleText), 375, titleText)
|
||||
painter.end()
|
||||
|
||||
buffer = QtCore.QBuffer()
|
||||
|
|
11
main.py
11
main.py
|
@ -14,7 +14,7 @@ import preview_thread, core, video_thread
|
|||
|
||||
class Main(QtCore.QObject):
|
||||
|
||||
newTask = QtCore.pyqtSignal(str, str, QFont)
|
||||
newTask = QtCore.pyqtSignal(str, str, QFont, str)
|
||||
processTask = QtCore.pyqtSignal()
|
||||
videoTask = QtCore.pyqtSignal(str, str, QFont, str, str)
|
||||
|
||||
|
@ -49,6 +49,7 @@ class Main(QtCore.QObject):
|
|||
|
||||
window.fontComboBox.currentFontChanged.connect(self.drawPreview)
|
||||
window.lineEdit_title.textChanged.connect(self.drawPreview)
|
||||
window.alignmentComboBox.currentIndexChanged.connect(self.drawPreview)
|
||||
|
||||
window.progressBar_create.setValue(0)
|
||||
window.setWindowTitle("Audio Visualizer")
|
||||
|
@ -56,12 +57,17 @@ class Main(QtCore.QObject):
|
|||
window.pushButton_selectOutput.setText("Select Output Video File")
|
||||
window.pushButton_selectBackground.setText("Select Background Image")
|
||||
window.label_font.setText("Title Font")
|
||||
window.label_alignment.setText("Alignment")
|
||||
window.label_title.setText("Title Text")
|
||||
window.pushButton_createVideo.setText("Create Video")
|
||||
window.groupBox_create.setTitle("Create")
|
||||
window.groupBox_settings.setTitle("Settings")
|
||||
window.groupBox_preview.setTitle("Preview")
|
||||
|
||||
window.alignmentComboBox.addItem("Left");
|
||||
window.alignmentComboBox.addItem("Middle");
|
||||
window.alignmentComboBox.addItem("Right");
|
||||
|
||||
titleFont = self.settings.value("titleFont")
|
||||
if not titleFont == None:
|
||||
window.fontComboBox.setCurrentFont(QFont(titleFont))
|
||||
|
@ -136,7 +142,8 @@ class Main(QtCore.QObject):
|
|||
def drawPreview(self):
|
||||
self.newTask.emit(self.window.label_background.text(),
|
||||
self.window.lineEdit_title.text(),
|
||||
self.window.fontComboBox.currentFont())
|
||||
self.window.fontComboBox.currentFont(),
|
||||
self.window.alignmentComboBox.currentText())
|
||||
# self.processTask.emit()
|
||||
|
||||
def showPreviewImage(self, image):
|
||||
|
|
35
main.ui
35
main.ui
|
@ -171,6 +171,41 @@
|
|||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_5">
|
||||
<item>
|
||||
<widget class="QLabel" name="label_alignment">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>200</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>200</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="baseSize">
|
||||
<size>
|
||||
<width>200</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::NoFrame</enum>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QComboBox" name="alignmentComboBox"/>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_6">
|
||||
<item>
|
||||
|
|
|
@ -19,13 +19,14 @@ class Worker(QtCore.QObject):
|
|||
self.queue = queue
|
||||
|
||||
|
||||
@pyqtSlot(str, str, QtGui.QFont)
|
||||
def createPreviewImage(self, backgroundImage, titleText, titleFont):
|
||||
@pyqtSlot(str, str, QtGui.QFont, str)
|
||||
def createPreviewImage(self, backgroundImage, titleText, titleFont, alignment):
|
||||
# print('worker thread id: {}'.format(QtCore.QThread.currentThreadId()))
|
||||
dic = {
|
||||
"backgroundImage": backgroundImage,
|
||||
"titleText": titleText,
|
||||
"titleFont": titleFont
|
||||
"titleFont": titleFont,
|
||||
"alignment": alignment
|
||||
}
|
||||
self.queue.put(dic)
|
||||
|
||||
|
@ -42,7 +43,8 @@ class Worker(QtCore.QObject):
|
|||
im = self.core.drawBaseImage(
|
||||
nextPreviewInformation["backgroundImage"],
|
||||
nextPreviewInformation["titleText"],
|
||||
nextPreviewInformation["titleFont"])
|
||||
nextPreviewInformation["titleFont"],
|
||||
nextPreviewInformation["alignment"])
|
||||
|
||||
spectrum = numpy.fromfunction(lambda x: 0.008*(x-128)**2, (255,), dtype="int16")
|
||||
|
||||
|
|
Reference in New Issue