Cet article est le 14e jour du Calendrier de l'Avent pour le développement personnel 2019. Et c'est le premier message de Qiita. Début.
Je crée une application Windows en utilisant un framework appelé Python x Kivy.
Kinoppy (Kii Kuniya Bookstore App) est une très bonne application et je la recommande.
Il dispose d'une bibliothèque et d'une fonction de visualisation PDF.
AnacondaNavigator VSCode Python3.7 Kivy1.11
Il y en a beaucoup qui dépendent trop des autres, mais ceux que j'utilise principalement sont les suivants. Rendu PDF: pdf2image Fichier de configuration: ruamel.yaml Polices d'icônes: iconfonts
Kinoppy Kivy stackoverflow Bâtiment principal du blog Arakawa Ray Et Qiita:Kivy
Todo C'est assez profond et médium, mais je vise ce qui suit. loin. ..
Les deux codes sources Kivy suivants sont extraits et présentés.
Saisissez la vignette (l'image affichée sur l'étagère) pendant quelques secondes, puis faites-la glisser et déposez-la pour ajouter de la couleur au cadre de l'image. Si vous le relâchez avant d'entrer par glisser-déposer, il sera considéré comme un clic normal et passera à la visionneuse.
Library.kv
<DraggableThumbnail@Scatter>:
image_name: ''
image_path: ''
image: image_id
shelf_row: None
shelf_col: None
do_rotation: False
do_scale: False
auto_bring_to_front: True
do_collide_after_children: True
background_color: 0,0,0,0
background_normal: ''
Image:
id: image_id
source: root.image_path
allow_stretch:True
keep_ratio: True
canvas:
Color:
rgb: (1, 1, 1)
Rectangle:
texture: self.texture
pos: self.pos
size: self.size
Library.py
class DraggableThumbnail(Scatter):
image_name = StringProperty(None)
image_path = StringProperty(None)
shelf_row = NumericProperty(None)
shelf_col = NumericProperty(None)
state = OptionProperty('released',options=['grabed','released'])
img_touched = StringProperty(None)
t = NumericProperty(0)
def __init__(self,**kwargs):
super(DraggableThumbnail,self).__init__(**kwargs)
#Horloge ici.schedule_Vous ne pouvez pas redimensionner sans une fois
Clock.schedule_once(self.drag_after_init)
def drag_after_init(self, dt):
self.size_hint = None,None
self.size = self.image.size
#Créez uniquement le cadre de l'image pour le glisser-déposer ici
with self.canvas:
self.color = Color(rgba = (1,1,1,0))
self.frame = Line(rectangle=(0,0,self.image.width,self.image.height))
def on_state(self,*args):
#Lorsque vous le saisissez, rendez le cadre de l'image gris.
if self.state == 'grabed':
self.color.rgba = (0.5,0.5,0.5,1)
#Lorsque vous le relâchez, remettez-le en place.
elif self.state == 'released':
self.color.rgba = (1,1,1,0)
def time_count(self,*args):
self.t += 0.1
def on_t(self,*args):
if self.t >=0.5:
Clock.unschedule(self.time_count)
self.t = 0
self.state = 'grabed'
self.img_touched = ''
def on_touch_down(self, touch):
self.on_state(touch)
if self.collide_point(*touch.pos):
Clock.schedule_interval(self.time_count, 0.1)
self.img_touched = self.image_name
touch.grab(self)
return True
def on_touch_up(self, touch):
Clock.unschedule(self.time_count)
self.t = 0
if touch.grab_current is self:
if self.img_touched == self.image_name:
self.img_touched = ''
if self.state == 'released':
#Transition vers le spectateur
app= App.get_running_app()
app.root.chgdisp_viewer(self.image_name)
else:
#Depuis sa suppression, l'alignement des vignettes
app= App.get_running_app()
app.root.Library.lineup_thumbnail(self,touch)
touch.ungrab(self)
self.state = 'released'
return True
def on_touch_move(self, touch):
Clock.unschedule(self.time_count)
self.t = 0
if self.state == 'grabed':
self.pos = touch.x - self.image.width / 2, touch.y - self.image.height / 2
return True
else:
self.img_touched = ''
L'inconvénient de PDF Viewer à l'étranger est qu'il ne prend pas en charge l'écriture verticale (droite → gauche). Le curseur de Kivy peut être de gauche à droite (de bas en haut), mais il n'y a pas de réglage de droite à gauche. Je voulais aussi le nombre de pages lors du glissement, alors j'en ai fait une partie. La source est téléchargée sur Github. J'ai appris à personnaliser les pièces standard de cette manière. S'il vous plaît voir la source si vous le souhaitez.
Je n'avais pas une bonne image de bibliothèque, alors j'en ai fait une. C'est l'image.
Comment créer [Mon blog ici](https://flat-kids.net/2019/10/06/inkscape0-92-4%e3%81%a7%e6%9c%ac%e6%a3%9a% À e3% 82% 92% e4% bd% 9c% e3% 82% 8b /), cela n'a rien à voir avec le programme et il ne semble y avoir aucune demande nulle part.
Le premier post Qiita et le premier calendrier de l'Avent, il est trop tôt à partir du 1er décembre à ma charge! !! Chaque jour, l'excitation du "Ah, ça va tourner ..." est devenue une très bonne motivation. Sans cet événement, cela n'aurait pas été terminé jusqu'à présent. Je suis content d'avoir pu participer. Merci pour la lecture.
Recommended Posts