Using TKinter to show popular tweets from twitter API (Tweepy)
Terry Reedy
tjreedy at udel.edu
Wed Apr 5 17:31:31 EDT 2017
On 4/5/2017 3:48 PM, unihno at gmail.com wrote:
> I'm building a python app where it should show the popular tweets
> in boxes in line with each other using TKinter.
By 'boxes' do you mean a visible border for Label widgets? If so, you
have to configure one. You don't below.
> The problem is that the labels of the tweets are showing at
> the bottom of each other
I don't understand this, and cannot run your code to see what it does.
> and i want them to be in boxes like this:
snip
> this is my code:
>
> from Tkinter import *
> import tweepy
> from local import *
> import Tkinter as tk
Use just 1 of the 2 tkinter imports.
> auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
> auth.set_access_token(OAUTH_TOKEN, OAUTH_TOKEN_SECRET)
> auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
> auth.set_access_token(OAUTH_TOKEN, OAUTH_TOKEN_SECRET)
> api = tweepy.API(auth)
For initial development of the UI, and especially when asking for help,
use static data included within the file. In this case, a short list of
'status' items with the required attributes. Read
https://stackoverflow.com/help/mcve
> for status in tweepy.Cursor(api.search, q=trend['name'], result_type='popular').items(1):
for status in myshortlist:
> f = tk.Frame(root, background='black', borderwidth=2, relief="groove").pack()
Commen error.
.pack(), etc is a status mutation method and returns None.
You did not get an exception only because f is not used.
> Label(text=('@' + status.user.screen_name, "tweeted: ",status.text)).pack()
You omitted the master, so it defaults to the more or less undocumented
default root. It this context, this should be the explicit 'root'
defined previously. I recommend being explicit, always.
I did not know that the 'string' passed as 'text' could be a tuple of
strings. I don't know if it is documented anywhere. My simple
experiment suggested that the result is ' '.join(strings), as with print
calls. But I don't know it that is always true.
Multiple Labels should be packed vertically, with each centered. If you
want lined up to the left, you will have to say so. As I said, I don't
know what you saw.
> Please help
Please make it easier by posting a better question, including an mcve.
--
Terry Jan Reedy
More information about the Python-list
mailing list